gpt4 book ai didi

python - 正确获取型号ID

转载 作者:行者123 更新时间:2023-12-01 03:55:19 24 4
gpt4 key购买 nike

我有两个模型。一种用于构建主菜单的模型,另一种用于构建文章。每篇文章都有ForeignKey将其链接到主菜单项。

我不明白,如何在页面 Article 上显示链接到 menuItem 模型的内容以及如何使用 menuItem 模型的URL 地址的 alias 字段?

我的模型menuItem:

    # -*- coding: utf-8 -*-
from django.db import models

class MainMenuItem(models.Model):
class Meta:
db_table = "menu_item"
title = models.CharField(max_length = 50)
alias = models.CharField(max_length = 50)

def __unicode__(self):
return self.title

def __str__(self):
return self.title

我的模型文章:

    class Article(models.Model):
class Meta:
db_table = "article"

menu = models.ForeignKey(MainMenuItem, blank = True, null = True)
active = models.BooleanField(default = True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)

def __unicode__(self):
return unicode(self.menu) or u''

def __str__(self):
return self.menu

我的views.py

    def menu_builder(request, alias):
findId = MainMenuItem.objects.????
elements = {
'menuItems': MainMenuItem.objects.all(),
'article': Article.objects.get(id=??????),
}
return render_to_response('myview.html', elements)

我的urls.py:

    urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^(?P<alias>.+?)/$', 'menuItem.views.menu_builder'),
]

最佳答案

您只需按 MainMenuItem 上的别名进行过滤,然后获取与该 MainMenuItem 相关的所有文章:

def menu_builder(request, alias):
main_menu_item = MainMenuItem.objects.get(alias=alias)
elements = {
'menuItems': main_menu_item,
'articles': main_menu_item.article_set.all(),
}
return render_to_response('myview.html, elements)

关于 related object lookup using _set 的 Django 文档.

编辑:

我之前应该使用objects.get(),但是使用objects.filter()这是错误的。不同之处在于,您应该只获取一项,以便获取与该对象相关的文章。如果您使用过滤器,您最终会得到一个查询集,但是检查多个对象上的相关对象是没有意义的,因此错误'QuerySet'对象没有属性'文章集'

请注意,MainMenuItem 对象应该有不同的alias,否则 get() 会抛出异常“返回多个对象”。

关于python - 正确获取型号ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37576442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com