/ / Django पोस्टग्रेज पर ImageField नहीं बनाता है - django, postgresql, django-मॉडल

Django Postgres - django, postgresql, django- मॉडल पर ImageField नहीं बनाता है

मैंने अपने में एक नया ImageField जोड़ा है models.py:

class User(AbstractUser):
[more_fields_here]
profile_picture = models.ImageField(upload_to="profile_pictures", null=True)

मैं भाग गया python manage.py makemigrations और फिर python manage.py migrate बिना किसी त्रुटि के।

लेकिन जब मैं अपना आवेदन चलाता हूं तो मुझे मिल रहा है:

ProgrammingError at column authentication_user.profile_picture does not exist

मैंने पोस्टग्रेज डेटाबेस और कॉलम में जाँच की profile_picture अस्तित्व में नहीं है।

मैंने माइग्रेशन हटा दिया और फिर से प्रयास किया, लेकिन मुझे अभी भी वही त्रुटि मिल रही है।

में migrations/0001_initial.py वहाँ लाइन है:

("profile_picture", models.ImageField(null=True, upload_to="profile_pictures")),

लेकिन कॉलम क्यों करता है नहीं टेबल में मौजूद है?

उत्तर:

उत्तर № 1 के लिए 1

ऐसा लगता है कि यह माइग्रेशन के साथ कुछ गड़बड़ था, यह मैन्युअल रूप से माइग्रेशन फ़ाइलों को संशोधित करने के लिए अनुशंसित नहीं है। Django उन सूचनाओं को संग्रहीत करता है जो माइग्रेशन पहले से ही लागू थे, यदि आप संशोधित करते हैं 0001 माइग्रेशन जो पहले से लागू है और चलता है migrate फिर से उन संशोधनों को "टी अप्लाई किया गया। बेशक मैं नहीं जानता" कि क्या यह वास्तव में आपके साथ हुआ है, लेकिन ऐसा लगता है profile_picture फ़ील्ड के बाद जोड़ा गया था 0001 लागू किया था।

इसे ठीक करने का सबसे आसान तरीका (बिना किसी माइग्रेशन को रोलबैक किए):

  1. मैदान हटा दें profile_picture से 0001 प्रवास
  2. रन makemigrations फिर (0002 नए क्षेत्र के साथ profile_picture बनाया जाना चाहिए)
  3. रन migrate