Вопрос новичка Django о взаимосвязи объектов

#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