构建应用程序以快速向外键添加数字。
所以我对Django很新,我已经在这里和Django的文档中查找了相关的问题。我发现的是内联AdminModel,但这不是我想要的。
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
import datetime
from django.utils import timezone
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date= models.DateTimeField('date published')
def __str__(self):
return self.question_text
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete= models.CASCADE)
choice_text = models.CharField(max_length = 200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
我想要一个包含ForeignKey.So的所有实例的表格,例如,使用教程代码,应该可以编辑每个choice_text并同时投票到所有问题(这样就不必在两者之间跳转)添加内容的不同问题)。这可能吗? 在此先感谢您的帮助!
答案 0 :(得分:0)
查看Django reference for the meta api 看看reference for model fields 这些的组合应该可以解决您的问题。 伪代码,
all_fields = MyModel._meta.fields
for field in all_fields:
//Check if field is foreign key, field.get_internal_key() should work.
//Find foreign key
答案 1 :(得分:0)
你的问题是你从错误的角度出发,这就是为什么你难以解释你想要实现的目标。您正尝试从Question
模型开始,而您想要的是批量更新Choice
(主要问题)并显示相关问题的文本(次要问题)。
您可以使用此list_editable
批量修改Choice
:
class ChoiceAdmin(admin.ModelAdmin):
list_display = ['__str__', 'question_text', 'choice_text', 'votes']
list_editable = ['choice_text', 'votes']
ordering = 'question'
def question_text(self, obj):
return obj.question.question_text
question_text.short_description = "Question"