我正在尝试在我的应用中创建一个实例,如下所示:
Views.py
new_quiz = Quiz.objects.create(owner=request.user, comments="Autogenerated", truck_type=truck_type_object,
truck_name=chosen_truck_object)
chosen_truck_object
的位置是
chosen_truck_object = Truckdb.objects.filter(display_name=chosentruck)[0]
和Models.py
class Quiz(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name='quizzes')
comments = models.TextField(max_length=256, blank=True)
truck_type = models.ForeignKey(truck_type, on_delete=models.CASCADE, related_name='trucks')
truck_name = models.ForeignKey(truck_name, on_delete=models.SET_NULL, null=True)
class truck_type(models.Model):
name = models.CharField(max_length=30)
color = models.CharField(max_length=7, default='#007bff')
def __str__ (self):
return self.name
class truck_name(models.Model):
truck_type = models.ForeignKey(truck_type, on_delete=models.CASCADE)
name = models.CharField(max_length=30)
def __str__ (self):
return self.name
如何将truck_type
和truck_name
实例传递给Quiz
中的Quiz.objects.create
模型?
答案 0 :(得分:0)
首先,您需要遵循命名约定准则,因此模型的名称必须为驼峰doc,如下所示:
d x 1 x 1
然后请迁移数据库,然后为您的问题使用class TruckType(models.Model):
name = models.CharField(max_length=30)
color = models.CharField(max_length=7, default='#007bff')
def __str__ (self):
return self.name
class TruckName(models.Model):
truck_type = models.ForeignKey(TruckType, on_delete=models.CASCADE)
name = models.CharField(max_length=30)
def __str__ (self):
return self.name
对象而不是TruckName
。
答案 1 :(得分:0)
chosen_truck_object = TruckName.objects.filter(display_name=chosentruck)[0]
它会保存
,而不是使用filter的获取方法chosen_truck_object = TruckName.objects.get(display_name=chosentruck)