Я создаю некоторые модели в django, чтобы представлять статьи новостей, их авторов и географический фокус для каждой статьи. Мне нужны отношения «многие ко многим» между статьей и автором и отношения «один ко многим» между статьей и местом, где каждое место может иметь более одной статьи, но не наоборот. Я пробовал различные методы, но каждый раз, когда я бегу мигрировать в Django я получаю следующее сообщение об ошибке:Ошибка целостности Django Postgres
django.db.utils.ProgrammingError: multiple default values specified for column "id" of table "location"
Код для формирования таблицы выглядит следующим образом:
from django.contrib.gis.db import models
class Article(models.Model):
article_id = models.AutoField(primary_key=True)
article_title = models.CharField(max_length=200, unique_for_date="pub_date")
pub_date = models.DateTimeField('date published')
article_summary = models.TextField()
title_id = models.CharField(max_length=200)
section_id = models.CharField(max_length=200)
def __unicode__(self):
return u'%s %s' % (self.article_title, self.pub_date)
class Meta:
db_table = 'article'
class Author(models.Model):
author_id = models.AutoField(primary_key=True)
articles = models.ManyToManyField(Article)
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
def __unicode__(self):
return u'%s %s %s' % (self.articles, self.first_name, self.last_name)
class Meta:
db_table = 'author'
class Location(models.Model):
location_id = models.AutoField(primary_key=True)
lat = models.FloatField()
lon = models.FloatField()
local = models.CharField(max_length=200)
city = models.CharField(max_length=200)
region = models.CharField(max_length=200)
country = models.CharField(max_length=200)
continent = models.CharField(max_length=200)
article = models.ForeignKey(Article, default=0)
def __unicode__(self):
return u'%s %s %s' % (self.location_id, self.lat, self.lon)
class Meta:
db_table = 'location'
Я предполагаю, что это что-то относительно простой, но это ускользало от меня в течение последних нескольких дней. Дайте мне знать, если вам нужна дополнительная информация.
Это код модели я теперь я использую, но все еще с той же проблемой описанной выше:
from django.contrib.gis.db import models
class Author(models.Model):
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
class Meta:
db_table = 'author'
class Location(models.Model):
lat = models.FloatField()
lon = models.FloatField()
local = models.CharField(max_length=200)
city = models.CharField(max_length=200)
region = models.CharField(max_length=200)
country = models.CharField(max_length=200)
continent = models.CharField(max_length=200)
def __unicode__(self):
return u'%s %s' % (self.lat, self.lon)
class Meta:
db_table = 'location'
class Article(models.Model):
authors = models.ManyToManyField(Author)
location = models.ForeignKey(Location)
article_title = models.CharField(max_length=200, unique_for_date="pub_date")
pub_date = models.DateTimeField('date published')
article_summary = models.TextField()
title_id = models.CharField(max_length=200)
section_id = models.CharField(max_length=200)
def __unicode__(self):
return u'%s %s' % (self.article_title, self.pub_date)
class Meta:
db_table = 'article'
Почему вы назначаете location_id, article_id и т. Д.? django автоматически присваивает идентификатор каждой модели –
Но 'id', кажется, присутствует в БД. Вы выполняли миграцию БД? –
Я иду из sql-фона и не привык к тому, чтобы не определять вещи явно! лучше ваш путь, хотя! – sammy88888888