"Unknown column 'user_id' erreur dans django vue
Je vais avoir une erreur là où je ne suis pas sûr de ce qu'il fait.
Voici l'erreur:
Exception Type: OperationalError
Exception Value:
(1054, "Unknown column 'user_id' in 'field list'")
Personne ne sait pourquoi j'obtiens cette erreur? Je ne peux pas le comprendre. Tout semble aller pour le mieux.
Mon point de vue, le code est ci-dessous:
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")
J'apprécie toute l'aide! Merci!
Edit: Aussi une question. Puis-je utiliser des objets.get(id= ou objets.get(pk= ? Si j'utilise une clé primaire, dois-je déclarer un champ id ou d'un indice dans le modèle?
Edit: Voici les modèles:
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()
OriginalL'auteur rksprst | 2008-11-16
Vous devez vous connecter pour publier un commentaire.
Vous devrez montrer vos modèles pour obtenir de l'aide réelle, mais il semble que votre Idée de la table n'ont pas de colonne user_id? Avez-vous modifier le SQL structure de la table?
syncdb ne change pas les structures de table, il ne peut créer inexistants tables. Ainsi, si vous modifiez vos modèles, vous aurez toujours des anciennes tables, et de la nécessité de supprimer les tables et les recréer à nouveau (ou modifier manuellement).
Génial!! Je vous remercie. J'ai laissé tomber toutes les tables et il a bien fonctionné.
Jetez un oeil à la Sud poject south.aeracode.org. C'est un must-have pour tous les projets django et c'est la fin de syncdb trucs ennuyeux. C'est aussi dans PYPI, de sorte que vous pouvez installer à l'aide de PIP. Profitez-en!
Ceci ne répond pas à la question. (Oui je sais c'est vieux, mais évidemment toujours d'actualité.) La réponse ci-dessous par @S. Lott est la solution réelle.
OriginalL'auteur Ned Batchelder
La
user_id
champ est le FK référence deIdea
àUser
. Il semble que vous avez changé votre modèle, et pas mis à jour votre base de données, alors vous allez avoir ce genre de problème.Chute de l'ancien tableau, exécutez à nouveau syncdb.
Votre modèle tables d'obtenir un
id
champ par défaut. Vous pouvez l'appelerid
dans vos requêtes. Vous pouvez également utiliser le synonyme depk
.Si vous définissez votre propre champ de clé primaire, vous, vous n'obtenez pas automatique
id
champ. Mais vous pouvez toujours utiliserpk
de référence à la Clé Primaire.docs.djangoproject.com/en/dev/topics/db/queries/.... PK signifie que le PK, soit celle que vous avez définie dans le modèle ou le défaut PK, qui sera ID.
OriginalL'auteur S.Lott
Oui, j'ai laissé tomber les tables et tout a très bien fonctionné. Cependant, il faut en fait aller dans la base de données et de les laisser TOMBER. "manage.py flush" ou "manage.py réinitialiser appname" de ne pas faire par eux-mêmes.
-Nick O'
OriginalL'auteur Nick Orlowski