2017-08-20 15 views
0

私のDjangoの練習プロジェクトの1つにエラーがあります。Djangoモデル:フィールド名の衝突

プロジェクト名:

以下は、私のアプリとそれぞれのモデルですdjango03

アプリ:ホーム

ホーム/ model.py

from __future__ import unicode_literals 

from django.db import models 
from django.conf import settings 
# Create your models here. 

User = settings.AUTH_USER_MODEL 

HOME_TYPE = (
    ('1','1'), 
    ('2','2'), 
    ('3','3'), 
) 


class Home(models.Model): 
    home_owner = models.ForeignKey(User,null=False, verbose_name='Owner') 
    hometype= models.CharField(max_length=100, null=False, default=1, 
choices=HOME_TYPE, verbose_name='Home Type') 
    licenseid= models.CharField(max_length=200, null=False, unique=True, 
verbose_name='License ID') 
archive = models.BooleanField(default=False) 

def __str__(self): 
    return self.licenseid 

アプリ:家具 家具/ model.py

# -*- coding: utf-8 -*- 
from __future__ import unicode_literals 
from django.conf import settings 
from django.db import models 

# Create your models here. 

User = settings.AUTH_USER_MODEL 

FURNITURE_DATA_IMPORT_SOURCE= (
    ('0', '0'), 
    ('1', '1'), 
    ('2', '2'), 
) 

class Furniture(models.Model): 
    furniture_owner = models.ForeignKey(User, verbose_name='User') 
    furniture_imported_via = models.CharField(max_length=200, default="0", null=False, choices=FURNITURE_DATA_IMPORT_SOURCE, verbose_name='Source of import') 
    furniture_title = models.CharField(max_length=100, null=False, verbose_name='Furniture title') 
    furniture_description = models.TextField(max_length=250, verbose_name='Furniture description') 
    archive = models.BooleanField(default=False) 

    def __str__(self): 
     return self.furniture_title 

アプリ:マッピング マッピング/ model.py

from __future__ import unicode_literals 

from django.db import models 
from home.models import Home 
from furniture.models import Furniture 

class HomeFurnitureMapping(models.Model): 
    home = models.OneToOneField(
     Home, 
     on_delete=models.CASCADE, 
     null=False, 
     unique=True, 
     verbose_name='Home' 
    ) 
    furniture = models.OneToOneField(
     Furniture, 
     on_delete=models.CASCADE, 
     null=False, 
     unique=True, 
     verbose_name='Furniture' 
    ) 

アプリ:furnitureupdates furnitureupdates /モデル.py

# -*- coding: utf-8 -*- 
from __future__ import unicode_literals 

from django.db import models 
from mappings.models import HomeFurnitureMapping 
# Create your models here. 

class FurnitureUpdate(models.Model): 
    mapping_id = models.OneToOneField(
     HomeFurnitureMapping, 
     on_delete=models.CASCADE, 
     null=False, 
     unique=True, 
     verbose_name='Mapping ID' 
     ) 
    update_status = num_pages = models.IntegerField(null=False, default=1) 
    update_date = models.DateField(auto_now_add=True, null=False, verbose_name='Update date') 
    update_time = models.TimeField(auto_now_add=True, null=False, verbose_name='Update time') 

    def __str__(self): 
     return self.mapping_id 

私はFurnitureUpdateモデルを移行しようとすると、私は次のエラーを取得する:

ERRORS: 
furnitureupdates.FurnitureUpdate.num_pages: (models.E006) The field 'num_pages' clashes with the field 'num_pages' from model 'furnitureupdates.furnitureupdate'. 

私はNUM_PAGESフィールドが表示されているところから理解していないです。この問題を解決する方法を教えてください。

答えて

1

これを更新する必要があります。

update_status = models.IntegerField(null=False, default=1) 

又はへ

update_status = num_pages = models.IntegerField(null=False, default=1) 

num_pages = models.IntegerField(null=False, default=1) 
+0

ありがとうございます!私は使用しました:update_status = models.IntegerField(null = False、デフォルト= 1)、私はいつか答えを受け入れることができます。 –

+0

この回答が正しい場合 –