Python ValueError:无法分配"&书信电报;Truckdb:Truckdb对象(1)>&引用;:&引用;测验.卡车“名称”;必须是一个";卡车名称;实例
我正在尝试在我的应用程序中创建如下实例: Views.pyPython ValueError:无法分配"&书信电报;Truckdb:Truckdb对象(1)>&引用;:&引用;测验.卡车“名称”;必须是一个";卡车名称;实例,python,django,django-queryset,Python,Django,Django Queryset,我正在尝试在我的应用程序中创建如下实例: Views.py new_quiz = Quiz.objects.create(owner=request.user, comments="Autogenerated", truck_type=truck_type_object, truck_name=chosen_truck_object) 其中选择的\u卡车\u对象是: chosen_truck_object =
new_quiz = Quiz.objects.create(owner=request.user, comments="Autogenerated", truck_type=truck_type_object,
truck_name=chosen_truck_object)
其中选择的\u卡车\u对象是:
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\u type
和truck\u name
实例传递到quick.objects.create
中的quick
模型?首先,您需要遵循命名约定准则,因此您的模型名称必须是camelcase,如下所示:
然后请迁移您的数据库,然后针对您的问题,您需要使用TruckName
对象,而不是Truckdb
chosen_truck_object = TruckName.objects.filter(display_name=chosentruck)[0]
使用get方法selected\u truck\u object=TruckName.objects.get(display\u name=chosentruck)
代替过滤器,它将保存,但在TruckName
模型中没有任何字段名display\u name
(但在TruckName模型中没有任何字段名display\u name):(
chosen_truck_object = TruckName.objects.filter(display_name=chosentruck)[0]