我有一个简单的投票应用程序,有大多数投票应用程序有2个模型轮询和选择。
民意调查模型包含以下字段:
此外,每个民意调查都有2个选择。
选择模型包含以下字段:
我有另一个模特人物。人员模型中的2人之间进行了民意调查。
人物模型:
我想在管理员中完成以下操作;
点2,3和4是我正在努力的。请保持你的回答简单,我是新手。
class Poll(models.Model):
question = models.CharField(max_length=250)
pub_date = models.DateTimeField()
end_date = models.DateTimeField()
class Choice(models.Model):
Poll = models.ForeignKey(Poll)
choice = models.ImageField(upload_to="choice")
vote = models.IntegerField()
class Person(models.Model):
name = models.CharField(max_length=200)
age = models.IntegerField(blank=True, null=True)
image = models.ImageField(upload_to='img')
如果问题不明确,请告诉我。
答案 0 :(得分:0)
我不清楚你想要达到什么目标。暗示你想要参考两个图像来回答这个问题我将使用以下模型:
class Poll(models.Model):
question = models.CharField(max_length=250)
person1 = models.ForeignKey(Person,related_name ="+") #"+" to block reverse reference
person2 = models.ForeignKey(Person,related_name ="+")
pub_date = models.DateTimeField()
end_date = models.DateTimeField()
class Choice(models.Model):
Poll = models.ForeignKey(Poll)
choice = models.ForeignKey(Person)
vote = models.IntegerField()
class Person(models.Model):
name = models.CharField(max_length=200)
age = models.IntegerField(blank=True, null=True)
image = models.ImageField(upload_to='img')
def votes_sum(self):
return len( self.choice_set.all()) #this returns all votes
在管理员中,您可以将选择模型作为内联添加到民意调查中。
class ChoiceInline(admin.TabularInline):
model = Choice
extra=1
class ProjectAdmin(admin.ModelAdmin):
inlines = [ChoiceInline]
class VotesAdmin(admin.ModelAdmin):
list_display = ['name', 'votes_sum']
readonly_fields = ('votes_sum',)
我没有测试这段代码,但你应该知道如何做到这一点。