Django व्यू में अज्ञात कॉलम 'user_id' त्रुटि

मुझे एक त्रुटि है जहां मुझे यकीन नहीं है कि इसका क्या कारण है।

यहां त्रुटि है:

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")

मैं किसी भी मदद की सराहना करता हूं! धन्यवाद!

संपादित करें: इसके अलावा एक साइड सवाल। क्या मैं ऑब्जेक्ट्स का उपयोग करता हूं .get (id = or objects.get (pk =? अगर मैं प्राथमिक कुंजी का उपयोग करता हूं, तो क्या मुझे मॉडल में आईडी फ़ील्ड या इंडेक्स घोषित करने की आवश्यकता है?

संपादित करें: यहां प्रासंगिक मॉडल हैं:

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()
0

3 उत्तर

वास्तविक सहायता प्राप्त करने के लिए आपको अपने मॉडल दिखाना होगा, लेकिन ऐसा लगता है कि आपकी आइडिया तालिका में user_id कॉलम नहीं है? क्या आपने SQL तालिका संरचना को संशोधित किया था?

0
जोड़ा
मैंने एसक्यूएल टेबल संरचना को स्पर्श नहीं किया। मैंने इसे दिखाने के लिए प्रश्न में अपना मॉडल जोड़ा। मैं कई बार syncdb भाग गया।
जोड़ा लेखक rksprst, स्रोत
बहुत बढ़िया!! धन्यवाद। मैंने सभी टेबल गिरा दिए और यह ठीक काम किया।
जोड़ा लेखक rksprst, स्रोत
syncdb तालिका संरचनाओं को नहीं बदलता है, यह केवल nonexisting तालिकाओं को बना सकता है। इस प्रकार यदि आप अपने मॉडल बदलते हैं, तो आपके पास अभी भी पुरानी टेबल होगी, और तालिकाओं को छोड़ने और उन्हें फिर से बनाने की आवश्यकता होगी (या उन्हें मैन्युअल रूप से बदलें)।
जोड़ा लेखक che, स्रोत
यह सवाल का जवाब नहीं देता है। (हाँ मुझे पता है कि यह पुराना है, लेकिन स्पष्ट रूप से अभी भी प्रासंगिक है।) नीचे दिए गए उत्तर @ एस। लॉट वास्तविक समाधान है।
जोड़ा लेखक Tim S., स्रोत
south.aeracode.org पर दक्षिण मूल पर एक नज़र डालें। यह सभी django परियोजनाओं के लिए जरूरी है और सिंकडब उबाऊ सामान का अंत है। यह पीवाईपीआई में भी है, इसलिए आप इसे पीआईपी के माध्यम से स्थापित कर सकते हैं। का आनंद लें!
जोड़ा लेखक Francisco, स्रोत
  1. The user_id field is the FK reference from Idea to User. It looks like you've changed your model, and not updated your database, then you'll have this kind of problem.

    Drop the old table, rerun syncdb.

  2. Your model tables get an id field by default. You can call it id in your queries. You can also use the synonym of pk.

    If you define your own primary key field you, you don't get the automatic id field. But you can still use pk to refer to the Primary Key.

0
जोड़ा
docs.djangoproject.com/en/dev/विषयों/db/प्रश्नों के लिए/& hellip; । पीके का मतलब है पीके, या तो जिसे आप मॉडल में परिभाषित करते हैं या डिफ़ॉल्ट पीके, जो आईडी होगा।
जोड़ा लेखक S.Lott, स्रोत
"पीके" आईडी के लिए समानार्थी नहीं है, यह प्राथमिक कुंजी कॉलम निर्दिष्ट करता है (क्या मुझे अलग-अलग नाम दिया जा सकता है)। यदि आप प्राथमिक कुंजी कॉलम के लिए सटीक नाम नहीं जानते हैं (या नहीं चाहते हैं) बहुत आसान है।
जोड़ा लेखक zgoda, स्रोत

हाँ, मैंने टेबल गिरा दिए और यह सब बहुत अच्छा काम किया। हालांकि, आपको वास्तव में डेटाबेस में जाना होगा और उन्हें डीआरओपी करना होगा। "manage.py flush" या "manage.py रीसेट ऐपनाम" स्वयं इसे नहीं करेगा।

-निक ओ

0
जोड़ा