2015-05-26 10 views
6

का उपयोग कर मैं एक मॉडल UserProfile संबंधित मॉडल उपयोगकर्ता बनाया है 'संघर्ष u'id।Django मॉडल जब OneToOneField

django.core.exceptions.FieldError: Local field u'id' in class 'UserProfile' clashes with field of similar name from base class 'User'

कोड यह रहा::

from django.contrib.auth.models import User 
from django.db.models.signals import post_save 

class UserProfile(models.Model): 
    user = models.OneToOneField(User, related_name='user_of') 
    description = models.TextField() 

def create_user_profile(sender, instance, created, **kwargs): 
    if created: 
     profile, created = UserProfile.objects.get_or_create(user=instance) 
post_save.connect(create_user_profile, sender=User) 

पर्यावरण: Django 1.8.2, पायथन 2.7.6, PostgreSQL 9.4

जब अजगर manage.py makemigrations कर मैं त्रुटि मिली। 2

क्या यह एक बग है? कैसे आ उपयोगकर्ता 'UserProfile' के साथ संघर्ष '' की 'u'id ...

मैं फ़ाइल में एक पंक्ति जोड़ने के लिए settings.py की कोशिश की है करता है:

AUTH_PROFILE_MODULE = 'user_profile.UserProfile' 

लेकिन यह काम नहीं करता है कि यह है या नहीं।

इसे कैसे ठीक करें? धन्यवाद!

+0

सभी माइग्रेशन को हटाने और उन्हें स्क्रैच से शुरू करने का प्रयास करें - त्रुटि जारी रहेगी? –

+0

अच्छी समस्या हल हो गई! क्यूं कर? गिल बेट्स, बस अद्भुत! मैं बस सभी माइग्रेशन फ़ाइलों को हटा देता हूं और डेटाबेस को फिर से बना देता हूं। धन्यवाद! – dotslash

+0

यह समाधान उस टिकट से आता है: https://code.djangoproject.com/ticket/21890 लेकिन यह विरासत के बारे में है। मुझे लगता है कि आपने पिछले संस्करणों में विरासत का उपयोग किया था और शायद समस्या का कारण बनता है। –

उत्तर

7

क्या आप शायद है एक पुरानी प्रवास कि

इस बाहर क्लोन अपनी परियोजना का परीक्षण करने और एक नए सिरे से नए डेटाबेस

तो उस पर सभी माइग्रेशन और makemigrations को हटाने के लिए प्रश्न में मॉडल से विरासत के लिए इस्तेमाल किया है काम करता है, फिर अपने वर्तमान प्रोजेक्ट से अपमानजनक माइग्रेशन को ट्रैक करें और django_migrations तालिका से