一个菜鸟问题。 我遵循了官方的Django教程,并且具有以下内容:
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
我尝试替换Choice。 str ()代码,如下所示:
def __str__(self):
return 'Choice for Q: {}'.format(Question.objects.get(pk=self.question_id_id).__str__())
我正在尝试查看与此选择相关的问题(在管理员中查看时)。 该代码不起作用。正确的做法是什么?
非常感谢。
答案 0 :(得分:0)
首先,您不需要在 str 方法内进行额外的查询。 其次,字符串格式需要一个字符串。您正在传递一个Question对象的 str 方法,也就是说,您基本上是在传递对该函数对象的引用(是的,所有内容都是python中的对象)
此代码段应该可以解决您的问题。
def __str__(self):
return 'Choice for Q: {}'.format(str(self.question.id))
答案 1 :(得分:-1)
尝试一下
def __str__(self):
return 'Choice for Q: {}'.format(self.question.__str__())