Ошибка "Неизвестный столбец 'user_id' в представлении django - PullRequest
5 голосов
/ 16 ноября 2008

У меня ошибка, когда я не уверен, что ее вызвало.

Вот ошибка:

Exception Type:     OperationalError
Exception Value:    
(1054, "Unknown column 'user_id' in 'field list'")

Кто-нибудь знает, почему я получаю эту ошибку? Я не могу понять это. Кажется, все в порядке.

Код моего просмотра ниже:

if "login" in request.session:
    t = request.POST.get('title', '')
    d = request.POST.get('description', '')
    fid = request.session["login"]
    fuser = User.objects.get(id=fid)
    i = Idea(user=fuser, title=t, description=d, num_votes=1)
    i.save()
    return HttpResponse("true", mimetype="text/plain")
else:
    return HttpResponse("false", mimetype="text/plain")

Я ценю любую помощь! Спасибо!

Редактировать: тоже побочный вопрос. Должен ли я использовать objects.get (id = или objects.get (pk =? Если я использую первичный ключ, нужно ли мне объявить поле id или индекс в модели?

Редактировать: Вот соответствующие модели:

class User (models.Model):
    first_name = models.CharField(max_length=200)
    last_name = models.CharField(max_length=200)
    email = models.CharField(max_length=200)
    password = models.CharField(max_length=200)

class Idea (models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=200)
    description = models.CharField(max_length=255)
    num_votes = models.IntegerField()

Ответы [ 3 ]

5 голосов
/ 16 ноября 2008
  1. Поле user_id является ссылкой FK от Idea до User. Похоже, что вы изменили свою модель, а не обновили базу данных, тогда у вас возникнет такая проблема.

    Удалите старую таблицу, перезапустите syncdb.

  2. Ваши таблицы моделей по умолчанию получают поле id. Вы можете назвать это id в ваших запросах. Вы также можете использовать синоним pk.

    Если вы определите свое собственное поле первичного ключа самостоятельно, вы не получите автоматическое поле id. Но вы все равно можете использовать pk для обозначения первичного ключа.

4 голосов
/ 16 ноября 2008

Вам нужно будет показать свои модели, чтобы получить реальную помощь, но похоже, что в вашей таблице Idea нет столбца user_id? Вы изменили структуру таблицы SQL?

0 голосов
/ 31 декабря 2009

Да, я бросил столы, и все это прекрасно работало. Тем не менее, вы должны пойти в базу данных и удалить их. «manage.py flush» или «manage.py reset appname» не сделают это сами.

-Ник O

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...