【发布时间】:2021-02-22 21:22:29
【问题描述】:
所以我对 django 还很陌生,我正在尝试创建一个网站来记录谁最后带走了他们家人的狗。我已经制作了我的模型以包含每个单独的帖子、狗及其与帖子本身相对应的动作的表格。我想这样做,以便按照最新到最早的帖子的顺序放置帖子列表,然后是每只狗所做的所有动作(即,如果有两个狗对象,那么帖子将有两个动作对象)。
models.py:
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
class Dog(models.Model):
name = models.CharField(max_length = 20)
class Post(models.Model):
walker = models.ForeignKey(User, on_delete = models.CASCADE)
time_posted = models.DateTimeField(default = timezone.now)
issues = models.TextField(max_length = 300)
class Action(models.Model):
post = models.ForeignKey(Post, on_delete = models.CASCADE)
dog = models.ForeignKey(Dog, on_delete = models.CASCADE)
peed = models.BooleanField(default = False)
pooped = models.BooleanField(default = False)
views.py:
from django.shortcuts import render
from django.views.generic import ListView, CreateView
from .models import Post, Dog, Action
from django.http import HttpResponse
class ActionList(ListView):
def home(request):
context = {
'posts': Post.objects.all(),
'actions': Action.objects.all(),
'dogs': Dog.objects.all()
}
return render(request, 'dog_log_app/home.html', context)
main.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Home</title>
</head>
<body>
<div>
<h1>Home</h1>
<!-- displays user info -->
{% if user.is_authenticated %}
<h2>Current Logged in User is {{request.user.username}}</h2>
<a href = "{% url 'logout' %}">Logout</a>
{% else %}
<a href = "{% url 'login' %}">Login</a>
<a href = "{% url 'register' %}">Register</a>
{% endif %}
<br>
<h2>Posts:</h2>
{% for post in posts %}
<h3>person walking: {{post.walker}}</h3>
<h4>time walked: {{post.time_posted}}</h4>
<h4>issues: {{post.issues}}</h4>
{% for action in actions %}
{{ACTIONS CORRESPONDING TO POST}}
{% endfor %}
{% endfor %}
</div>
</body>
</html>
理想的帖子应该是什么样子:
- 沃克:[generic_user]
- 走过的时间:[日期和时间]
- 问题:[任何问题]
- 狗 1:撒尿和拉屎
- Dog2:拉屎
我知道如何格式化操作数据,使其看起来像上面的样子。我只是很难尝试将动作对象与 post 对象结合起来。 如果其中任何一个令人困惑,我深表歉意。在下面发布任何需要澄清的内容。谢谢!
【问题讨论】:
标签: python django sqlite django-views