2015-05-26 18 views
6

Tôi đã tạo mô hình UserProfile để liên kết mô hình Người dùng.Mô hình Django u'id 'gặp sự cố khi sử dụng OneToOneField

tôi đã nhận lỗi khi làm python makemigrations manage.py:

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

Dưới đây là các mã:

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) 

Môi trường: Django 1.8.2, Python 2.7.6, PostgreSQL 9.4. 2

Đó có phải là lỗi không? Tại sao hiện u'id' của '' cuộc đụng độ với các 'UserProfile tài' ...

Tôi đã cố gắng thêm một dòng trong file settings.py:

AUTH_PROFILE_MODULE = 'user_profile.UserProfile' 

Nhưng đã không hoạt động cho dù nó có hay không.

Cách sửa lỗi này? Cảm ơn!

+0

Hãy thử, chỉ để thử nghiệm, xóa tất cả di chuyển và bắt đầu chúng từ đầu. –

+0

Giải quyết vấn đề tốt! Tại sao? Gill Bates, thật tuyệt vời! Tôi chỉ xóa tất cả các tệp di chuyển và tạo lại cơ sở dữ liệu. Cảm ơn bạn! – dotslash

+0

Giải pháp này đến từ vé đó: https://code.djangoproject.com/ticket/21890 Nhưng đó là về thừa kế. Tôi cho rằng, bạn đã sử dụng thừa kế trong các phiên bản trước và có thể gây ra vấn đề. –

Trả lời

7

gì bạn có thể có là một di cư cũ mà sử dụng để kế thừa từ các mô hình trong câu hỏi

Để dùng thử bản sao dự án của bạn và xóa tất cả các cuộc di cư và makemigrations trên một cơ sở dữ liệu mới tươi

Nếu nó hoạt động, sau đó theo dõi di chuyển vi phạm từ dự án hiện tại của bạn và đừng quên xóa mục nhập khỏi bảng django_migrations cũng như

Các vấn đề liên quan