Python中文
首页
教程
问答
标签
搜索
登录
注册
Django如何生成一个反向外键引用
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我建立了一个在线测试系统,我目前有两个表:</p> <pre><code>class Answer(models.Model): ID = models.IntegerField(primary_key = True) answer = models.TextField() class Question(models.Model): ID = models.IntegerField(primary_key = True) ..... answer = ForeinKey(Answer) </code></pre> <p>我有模型管理员</p> ^{pr2}$ <p>我正在为它做管理网站。我想要的是,每次用户访问问题时,网站只显示与之相关的适当答案,用户可以编辑答案(弹出答案管理窗口)。我曾试图重写<code>QuestionAdmin</code>中的<code>formfield_for_foreignkey(self, db_field, request, **kwargs)</code>和<code>change_view(self, request, object_id, extra_context=None)</code>,以缩小查询集的范围并将相关答案传递给模板,但由于我不知道在<code>Answer.objects.filter(ID = ???)</code>中放入什么,所以没有用。有什么想法吗?也试过用表格。在</p> <p>更新: 我做了这个:用</p> <pre><code>class QuestionForm(forms.ModelForm): class Meta: model = Question def __init__(self, *args, **kwargs): super(QuestionForm,self).__init__(*args,**kwargs) self.fields['answer'].queryset = Answer.objects.filter(ID = self.instance.answer.ID) </code></pre> <p>要覆盖QuestionAdmin中的表单并向模板添加上下文:</p> <pre><code>def change_view(self, request, object_id, extra_context=None): extra_context = extra_context or {} extra_context['ID'] = object_id return super(QuestionAdmin, self).change_view(request, object_id, extra_context=extra_context) </code></pre> <p>它可以工作,但它要求答案ID与引用它的问题ID相同,有没有更好的方法?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我想你在找<a href="https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships" rel="nofollow">this</a>。你可以过滤除ID之外的其他键。 您的代码可能是<code>Answer.objects.filter(question = myquestion)</code></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
在python3中使用Scipy pearsonr函数
3 回答
在Python3中使用scipy对多个lorentzian进行数据拟合
5 回答
在Python3中使用Script=argv
6 回答
在python3中使用selenium webdriver进行未解析的回溯
7 回答
在python3中使用selenium和phantomjs的网页截图之前如何等待?
9 回答
在Python3中使用Selenium和Requests模块从网页获取文件
6 回答
在python3中使用SIGINT终止函数
1 回答
在Python3中使用SIGTERM时,允许进程完成而不是中断
7 回答
在python3中使用smtplib发送XML内容
6 回答
在python3中使用socket库(RFCOMM模式)重新连接蓝牙设备?
6 回答
在python3中使用sounddevice和numpy编写wav文件
3 回答
在python3中使用Sqlalchemy插入MySQL查找类型错误的原因
3 回答
在python3中使用sqlite、pandas和sqlalchemy很难让rollback工作
7 回答
在python3中使用SQLite的FTS3/4
1 回答
在Python3中使用struct.calcsize()和len()有区别吗?
10 回答
在python3中使用substring函数时发生TypeError
1 回答
在Python3中使用Tkinter entry小部件写入串行设备
1 回答
在python3中使用tkinter时,如何在每次按下函数时获得运行该函数的按钮?
7 回答
在python3中使用tkinter的子帧
5 回答
在Python3中使用tryexcept块时,如何避免使用未初始化的变量?
6 回答