【问题标题】:I want to create a website where users will be posting to the site, How would I make each post appear in a separate card?我想创建一个网站,用户将在该网站上发帖,我如何让每个帖子出现在单独的卡片中?
【发布时间】:2019-06-19 06:06:19
【问题描述】:

我正在创建一个网站,用户将在该网站上发布信息,但是当我在该网站上发布信息时,所有帖子都出现在一张卡片中,而我希望每个帖子都出现在单独的卡片中,我该怎么做? ?我是否必须在前端使用 Javascript 或在后端使用 python 来完成这个,以及如何?

我正在使用 python 3.6.8 和 django 2.1.8,我已经编写了代码,但所有帖子都出现在单个具体化卡中

观看次数

def homepage(request):
return render(request=request,
              template_name="main/home.html",
              context={"documents":Documents.objects.all}

型号

class Documents(models.Model):
docs_name = models.CharField(max_length=200)
police_station = models.CharField(max_length=200)
docs_details = models.TextField()
docs_pic = models.ImageField()

def __str__(self):
    return self.docs_name

主页模板

{% extends 'main/base.html' %}

{% block content %}
<a class="waves-effect waves-light btn" href="">button</a>
 <div class="row">
    <div class="col s12 m9" >
      <div class="card">
        <div class="card-image">
            {% for Doc in documents %}
            <p>{{Doc.docs_name}}</p>
            <p>{{Doc.police_station}}</p>
            <p>{{Doc.docs_details}}</p>
            <p>{{Doc.docs_pic}}</p>
            {% endfor %} 
        </div>
      </div>
    </div>
  </div>


{% endblock %}

【问题讨论】:

  • 您可以根据您的选择使用它们中的任何一个,无论是作为服务器端呈现(即使用 django)还是客户端(使用某种 javascript)。如果您可以将模板 home.html 添加到上面的问题中会更好
  • 谢谢回复,现在我想用python让它看起来分开,请帮我分开代码
  • 是的,最好只使用 python,因为您已经在从服务器端模板化视图。看看下面的答案是否有帮助

标签: python django


【解决方案1】:

试试:

{% extends 'main/base.html' %}

{% block content %}
<a class="waves-effect waves-light btn" href="">button</a>
 <div class="row">
    <div class="col s12 m9" >
    {% for Doc in documents %}
      <div class="card">
        <div class="card-image">
            <p>{{Doc.docs_name}}</p>
            <p>{{Doc.police_station}}</p>
            <p>{{Doc.docs_details}}</p>
            <p>{{Doc.docs_pic}}</p> 
        </div>
      </div>
    {% endfor %}
    </div>
  </div>


{% endblock %}

【讨论】:

    【解决方案2】:

    你可以通过简单地在&lt;div class="card"&gt;之外添加循环结构来实现你想要的:

    {% extends 'main/base.html' %}
    
    {% block content %}
    <a class="waves-effect waves-light btn" href="">button</a>
    <div class="row">
       <div class="col s12 m9" >
    
        {% for Doc in documents %}
          <div class="card">
            <div class="card-image">
              <p>{{Doc.docs_name}}</p>
              <p>{{Doc.police_station}}</p>
              <p>{{Doc.docs_details}}</p>
              <p>{{Doc.docs_pic}}</p>
            </div>
          </div>
        {% endfor %} 
    
    </div> 
     </div>
     {% endblock %}
    

    这样,您的卡片部分就会重复多次。 早些时候,由于循环在卡片内,因此您将所有项目都放在同一张卡片内。

    【讨论】:

    • 谢谢,这个也可以,现在我知道是div的问题了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多