Django 1.7을 사용하여 마이그레이션을 작성했지만 일부 기사를 읽었지만 모델에서 countryname = 'MEXICO'와 같은 계층 구조를 사용하는 방법을 이해하지 못했으며 결과를 반환했습니다. MX 키,이 값으로 내가 테이블에 삽입 할 수 있습니다 내 짐작이다. 전 국가 = F의 [ 'PAIS를']를 사용하는 경우부모 클래스를 사용하는 Django 1.7 마이그레이션
def add_holder_data(apps, schema_editor):
table = 'PODER.DBF'
m = MigrationFromDBase()
fields = json.dumps(m.fetch_dbase_table(table))
Holder = apps.get_model('holder', 'Holder')
data = []
for f in json.loads(fields):
if int(f['NREFPOD']) > 0 and int(f['NREFPOD']) != None:
data.append(
Holder(
id=int(f['NREFPOD']), name =f['SOLICITA'], street = f['CALLE'], city = f['CIUDAD'],
cp = f['CODIGO'], country__name = f['PAIS'], nationality = f['NACION'], rfc = f['RFC'],
power = f['PODER_EN'], no_rgp = f['NORGP'], person_type = f['PERFISICA'],
national = f['NACIONAL'], compulsa = int(f['COMPULSA'])
)
)
Holder.objects.bulk_create(data)
def remove_holder_data(apps, schema_editor):
Holder = apps.get_model('holder', 'Holder')
Holder.objects.all().delete()
class Migration(migrations.Migration):
dependencies = [('holder','0001_initial')]
operations = [
migrations.RunPython(
add_holder_data,
reverse_code=remove_holder_data
),
]
는 내게 오류를 줄 : 값이 너무 오래 입력 문자 F [ 'PAIS]는 전체 이름을 가지고 있기 때문에 (2) 그것의 변화. 클래스는 country.code 필드에 네 개의 문자가 있습니다.
country__name = f [ 'PAIS']를 사용하면 오류가 발생합니다. TypeError : 'country_name'은이 함수에 대한 키워드 인수가 잘못되었습니다.이 경우 오류 이유를 알 수 없습니다.
먼저 국가 코드가 필요합니까?.
class Holder(models.Model):
name = models.CharField(max_length=80, verbose_name=_('Nombre'))
street = models.CharField(max_length=70, blank=True, verbose_name=_('Calle'))
city = models.CharField(max_length=70, blank=True, verbose_name=_('Ciudad'))
cp = models.CharField(max_length=10, blank=True, verbose_name=_('Código Postal'))
country = models.CharField(Country, max_length=50)
nationality = models.CharField(Nacionality, blank=True, max_length=50)
rfc = models.CharField(max_length=13, blank=True, verbose_name=_('RFC'))
def __str__(self):
return self.name
홀더 정의를 붙여 넣을 수 있습니까? 'Holder (..., country = Country (code = ..., name = f [ 'PAIS'])), ...)'작동합니까? – ZZY