2014-12-15 3 views
0

내 장고 모델 및 뷰에서 관계를 설정하는 데 도움이 필요합니다.Django 1.6 : 1 대 다수의 관계 문제가 남쪽과

그냥 말씀하고 싶습니다. 감사합니다. 누군가가 아래에서 깊은 잠수를하기 전에!

응용 프로그램 작업 나는 많은 제품이 있고 일 부 제품이 하나의 웹 사이트에만 관련된 일대 다 관계가 있습니다. Django South - Create Not Null ForeignKey

:

? The field 'Product.website' does not have a default specified, yet is NOT NULL. 
? Since you are adding this field, you MUST specify a default 
? value to use for existing rows. Would you like to: 
? 1. Quit now, and add a default to the field in models.py 
? 2. Specify a one-off value to use for existing columns now 

내가 여기에이 솔루션을 사용하려고 : 나는이 오류가 내 웹 사이트 모델에 외부 키를 추가 할 때 가장 큰 문제 중

하나는 경험하고있다

그러나 아무 소용이 없어도 4 단계 이후에해야 할 일을 알지 못해서 방금 길을 잃었습니다. 내 product_extend 응용 프로그램에서

Models.py을

제품 모델 :

class Product(models.Model): 
    """ 
    The product structure for the application, the products we scrap from sites will model this and save directly into the tables. 
    """ 

    product_name = models.CharField(max_length=254, verbose_name=_('Name'), null=True, blank=True) 
    product_price = CurrencyField(verbose_name=_('Unit price')) 
    product_slug_url = models.URLField(max_length=200, null=True, blank=True) 
    product_category = models.CharField(max_length=254, blank=True, null=True) 
    product_img = models.ImageField('Product Image', upload_to='product_images', null=True, blank=True) 
    product_website_url = models.URLField(max_length=200, null=True, blank=True) 
    product_website_name = models.CharField(max_length=254, blank=True, null=True) 

    #For Admin Purposes, to keep track of new and old items in the database by administrative users 
    date_added = models.DateTimeField(auto_now_add=True, null=True, blank=True, verbose_name=_('Date added')) 
    last_modified = models.DateTimeField(auto_now=True, null=True, blank=True, verbose_name=_('Last modified')) 

    #For Admin Purposes, to make sure an item is active by administrative users 
    active = models.BooleanField(default=True, verbose_name=_('Active')) 

    # Foreign Key 
    website = models.ForeignKey(Website, null=True, related_name='website_to_product') 

웹 사이트 모델

class Website(models.Model): 
    name = models.CharField(max_length=254, blank=True, null=True, unique=True) 
    description = models.TextField(null=True, blank=True) 
    website_slug = models.SlugField(verbose_name=_('Website Slug'), unique=True) 
    site_logo = models.ImageField('Websites Logo', upload_to='website_logo_images', null=True, blank=True) 

    menswear = models.BooleanField(default=False, verbose_name=_('Menswear')) 
    womenswear = models.BooleanField(default=False, verbose_name=_('Womenswear')) 


    active = models.BooleanField(default=True, verbose_name=_('Active')) 

편집

나는이 questi 단축 위한 노력에 좀 더 이해하게하고 또 다른 질문으로 두 번째 부분을 분할 : 마이그레이션을 수행 할 때, 제품 및 웹 사이트 모두가 이미 models.py에 있는지

Django 1.6: Displaying a particular models Objects in another template

+0

django 1.7을 사용하고 있습니까? – sax

+0

마이그레이션에는 FK를 추가하는 방법과 URL을 구성하는 방법에 대해 하나씩 명확하게 구분해야합니다. 별도의 질문으로 나누십시오. –

+0

@DanielRoseman 그 메모를 가져 주셔서 감사합니다! 내가 추천 한대로 질문을 두 개로 나눴습니다! – Amechi

답변

0

가 잘 말할 수 있나요? 그런 경우, 해결 방법이

 ? 2. Specify a one-off value to use for existing columns now 

에 대한 임의의 값을 입력하는 것 또는 당신은 시간을 사실로 널 (null)로 설정되어 있습니다. 그런 다음 외래 키를 작성하고 기존 행의 키 값을 추가 한 후 거짓으로 다시 설정할 수 있습니다. 그런 다음 https://stackoverflow.com/a/22617012/2774853과 같이 이전 프로세스를 실행하십시오.

Step 6. Run ./manage.py schemamigration <app> --auto 

    Step 7. Run ./manage.py migrate <app> 

희망적입니다.