【发布时间】:2016-07-31 21:37:12
【问题描述】:
这是我第一次来这里。
我在 Django 中遇到了一个小问题。我正在为一个狗窝写一个网页,我有一个狗模型。这些狗在管理页面中创建后出现在首页上。我需要它,以便在单击首页上的任何狗图片后,您可以访问他们的个人资料(在 URL 中带有狗的名字),该个人资料应该为每个人使用一个模板。
这是我在模型、视图和网址中的代码:
models.py
class dog(models.Model):
name = models.CharField(max_length=30, blank=False, null=True)
main_image = models.ImageField(upload_to='dogs', blank=False, null=True)
MALE = 'ML'
FEMALE = 'FM'
gender_list = (
(MALE, 'male'),
(FEMALE, 'female'),
)
gender = models.CharField(max_length=2, choices=gender_list, default='gender')
description = models.TextField(max_length=500, blank=False, null=True)
birthday = models.DateField(default=datetime.today, blank=True)
slug = AutoSlugField(populate_from='name')
views.py
def home(request):
dog_list = list(dog.objects.all())
template = 'home.html'
return render(request, template, {'dogs' : dog_list})
def dog_view(request, slug):
dog_view = get_object_or_404(dog, slug=slug)
return render(request, 'profile.html', {'dog_view' : dog_view})
urls.py
urlpatterns = [
url(r'^$', views.home, name='home'),
url(r'^dogs/(?P<slug>[-\w]+)/$', views.dog_view, name='profile'),
url(r'^mating/', views.mating_list, name='mating'),
url(r'^admin/', admin.site.urls),
]
home.html
{% for dog in dogs %}
<a href="{% url 'profile' %}{{ dog.name }}">
<div class="col-sm-4">
<img class="img-circle img-responsive img-center" src="{{ dog.main_image.url }}" alt="">
<h2 align=center>{{ dog.name }}
<p>{{ dog.description }}</p>
</div>
{% endfor %}
我觉得这应该是一件非常容易的事情,虽然我在互联网上搜索并找不到如何让页面与狗对象一起自动创建。
非常感谢您。
【问题讨论】:
-
你得到什么错误?
-
您希望每只狗都有不同的模板吗?或者您想使用模板生成每个狗页面?
-
第二个。我想用一个模板来生成每只狗的页面。