我的电话是
venues = ExtCalendar.objects.all()
但是我收到了错误
(1054, "Unknown column 'ext_calendar.id' in 'field list'")
即使ext_calendar表没有此列
我的模特:
class ExtCalendar(models.Model):
source_id = models.CharField(max_length=255)
ext_type = models.CharField(max_length=32)
ext_id = models.CharField(max_length=255)
out_id = models.CharField(max_length=255, blank=True, null=True)
confidence = models.FloatField(blank=True, null=True)
data = models.CharField(max_length=8192, blank=True, null=True)
ext_name = models.CharField(max_length=255, blank=True, null=True)
out_name = models.CharField(max_length=255, blank=True, null=True)
last_out_id = models.CharField(max_length=32, blank=True, null=True)
status = models.CharField(max_length=10)
out_formatted = models.CharField(max_length=1024, blank=True, null=True)
ext_formatted = models.CharField(max_length=1024, blank=True, null=True)
class Meta:
db_table = 'ext_calendar'
unique_together = (('source_id', 'ext_type', 'ext_id'),)
def __unicode__(self):
return self.ext_id
venues
的返回值是包含错误查询的QuerySet:
SELECT `ext_calendar`.`id`, `ext_calendar`.`source_id`, `ext_calendar`.`ext_type`, `ext_calendar`.`ext_id`, `ext_calendar`.`out_id`, `ext_calendar`.`confidence`, `ext_calendar`.`data`, `ext_calendar`.`ext_name`, `ext_calendar`.`out_name`, `ext_calendar`.`last_out_id`, `ext_calendar`.`status`, `ext_calendar`.`out_formatted`, `ext_calendar`.`ext_formatted` FROM `ext_calendar`
那么如何从查询中删除id?
答案 0 :(得分:-1)
埋藏在文档深处,
https://docs.djangoproject.com/en/1.10/topics/db/models/#automatic-primary-key-fields
django自动(并默默地)为您添加id字段。 来自文档:
自动主键字段
默认情况下,Django为每个模型提供以下字段:
id = models.AutoField(primary_key=True)
这是一个自动递增的主键。
如果您想指定自定义主键,只需在其中一个字段中指定 primary_key = True 即可。如果Django发现您已明确设置 Field.primary_key ,则不会添加自动 id 列。
每个模型只需要一个字段就可以 primary_key = True (显式声明或自动添加)。