【发布时间】:2021-05-06 14:03:36
【问题描述】:
我在 Django 中有一个模型,我希望在另一个模型插入对象后自动填充值。 这是发起者模型问题:
class Question(models.Model):
question = models.CharField(max_length=200, null=False, blank=False)
description = models.TextField('description', default=False)
voters = models.ManyToManyField(User, related_name='+')
votes = models.IntegerField(default = 0)
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
问题视图:
class QuestionApiView(AuthenticatedAPIView):
"""
Lists all questions or creates a new question
"""
def post(self, request, format=None):
vote_data = request.data
vote_data["created_by"] = request.user.id
data["created_by"]=request.user.id
print(vote_data)
print(vote_data["voters"])
voter_data = vote_data["voters"]
result, valid = QuestionHelper.createQuestion(vote_data)
问题助手:
class QuestionHelper(object):
@classmethod
def createQuestion(klass, questiondata):
"""
creates a question
"""
createdQuestion = QuestionSerializer(data=questiondata)
if createdQuestion.is_valid():
createdQuestion.save()
return createdQuestion.data, True
return createdQuestion.errors, False
问题序列化器:
class QuestionSerializer(serializers.ModelSerializer):
class Meta:
model = Question
fields = '__all__'
这是我的 Choice 模型,我希望将值 Yes、No 和 Abstain 添加到 >choice_text 一旦创建了 Question 对象:
question = models.ForeignKey(Question, on_delete=models.CASCADE, default=1)
choice_text = models.CharField("choice", max_length=250)
这样,每个选项都将使用 question_id 链接到一个问题
【问题讨论】:
-
呃,我不明白,也许你想在
choice_text字段中使用choices关键字? -
我不想在choice_text 列下插入默认值
标签: python django django-models django-rest-framework django-views