#python #django
#python #django
Вопрос:
У меня возникли некоторые проблемы с пониманием объектных отношений в Django. Я написал это:
from django.db import models
class Community(models.Model):
name = models.CharField(max_length=200) #arbitrary max length
class Category(models.Model):
community = models.ForeignKey(Community)
category = models.CharField(max_length=200) #arbitrary max length
class Detail_View(models.Model):
category = models.ForeignKey(Category)
detailView = models.CharField(max_length=200) #arbitrary max length
website = models.CharField(max_length=200) #arbitrary max length
Каждое сообщество должно иметь возможность иметь несколько категорий, которые связаны с ним, и каждая категория должна иметь возможность иметь несколько Detail_Views, связанных с ним. Я могу делать с сообществами все, что хочу, но как только я пытаюсь добавить категорию или подробное представление, это облажается. Например, если я скажу:
c = Community.objects.get(id=1)
c.category_set.create(category = "FooBar")
Я получаю сообщение об ошибке «Ошибка базы данных: в таблице Content_Management_System_category нет столбца с именем category»
Ответ №1:
Вы, вероятно, не запускали python manage.py syncdb
в последнее время, или вы сделали, но изменили некоторые таблицы / модели.Определения моделей.
Попробуйте удалить свою базу данных, создать ее и снова запустить syncdb. То есть, если у вас там нет никаких важных данных.
Вы также можете сделать python manage.py reset <appname>
Ответ №2:
Похоже, вы забыли запустить syncdb после добавления Category и / или Detail_View в свой models.py
Или что, поскольку у вас есть поле, а имя таблицы — Category, модели становятся запутанными.
Попробуйте изменить поле вашей категории на название в категории класса. То же самое с detail_view