Django:自动创建新数据集

时间:2016-09-02 17:43:51

标签: python django django-models django-admin

我有三个型号。 QuestionPersonResponse。每个人只能对一个问题有一个答案或回答。因此,我使用unique_together

class Meta:
            unique_together = (("question", "person"),)

所以,我的目标是每个人都要向我的数据库中的每个人提出一个答案。

我希望我能在管理界面中为每个问题和每个人选择“同意”/“不同意”/“中立”。但我不想创建所有那些问题/人对。

如果我创建一个新问题,我希望如此:

  • 适合每个人:创建 - >带有新问题的新Response对象,我可以在管理界面中设置“同意”/“不同意”/“中立”,然后为每个问题/人对设置

如果我创建一个新人:

  • 对于每个问题:创建 - >新人Response新对象,我将再次添加管理界面中人员的回复。

但是,如果我添加新的问题或个人,我该怎么做才能自动创建所有可能的问题/人物对?

这里有您的信息我的模型。非常感谢你的帮助!

from django.db import models

class Question(models.Model):
    these_title = models.CharField(max_length=40)
    these_text = models.TextField(max_length=200)

class Person(models.Model):
    name = models.CharField(max_length=50)
    information = models.TextField(max_length=300)
    website = models.URLField(blank=True)

class Response(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    person = models.ForeignKey(Person, on_delete=models.CASCADE)
    possible_responses = (
        (1, 'Agree'),
        (0, 'Neutral'),
        (2, 'Disagree'),
    )
    response = models.IntegerField(
        choices=possible_responses,
        blank=True,
        null=True,
    )

    class Meta:
        unique_together = (("question", "person"),)

1 个答案:

答案 0 :(得分:0)

使用保存后信号。这里的文档:https://docs.djangoproject.com/en/1.10/ref/signals/