admin 만 사용하는 간단한 django 앱이 있습니다. 이것은 서버에 지금처럼 모델입니다 :프로덕션 서버의 Django 앱에서 models.py를 바꾸는 방법
from django.db import models
class School(models.Model):
school = models.CharField(max_length=200)
def __unicode__(self):
return self.school
class Lawyer(models.Model):
first = models.CharField(max_length=20)
initial = models.CharField(blank=True, max_length=2)
last = models.CharField(max_length=20)
year_graduated = models.IntegerField('Year graduated')
school = models.CharField(max_length=200)
school = models.ForeignKey(School)
class Meta:
ordering = ('last',)
def __unicode__(self):
return self.first
나는 두 개의 새로운 필드를 추가 할 수 있도록 새 models.py
이 같다고 : 다른
from django.db import models
class School(models.Model):
school = models.CharField(max_length=300)
def __unicode__(self):
return self.school
class Lawyer(models.Model):
firm_url = models.URLField('Bio', max_length=200)
firm_name = models.CharField('Firm', max_length=100)
first = models.CharField('First Name', max_length=50)
last = models.CharField('Last Name', max_length=50)
year_graduated = models.IntegerField('Year graduated')
school = models.CharField(max_length=300)
school = models.ForeignKey(School)
class Meta:
ordering = ('?',)
def __unicode__(self):
return self.first
그렇지 않으면 모든 것이 동일합니다. 이 새로운 models.py
을 서버에 업로드하고 응용 프로그램이 이전과 동일하게 작동 할 것으로 기대합니까? 또한 데이터베이스에있는 내용을 정리해야합니다. sqlite3
을 사용하고 있습니다.
새로운 앱을 배포하려했지만 유감스럽게도 호스팅 공동체는 도움을 거부합니다. 2 개의 앱이 필요 없기 때문에 대체 할 생각은 models.py
입니다. 이 새로운 응용 프로그램은 django dev 서버에서 예상대로 작동합니다. 이 응용 프로그램을 실행 한 후에 다른 뛰어난 질문을 처리 할 것이므로 조언을 부탁드립니다. 감사!
편집 모든 답변을
감사합니다. 데이터베이스를 분명히하고 싶으므로 jcd
님의 해결책을 시도 할 것입니다. 그래서, 새로운 필드와 models.py
first = models.CharField(max_length=20)
initial = models.CharField(blank=True, max_length=2)
last = models.CharField(max_length=20)
year_graduated = models.IntegerField('Year graduated')
school = models.CharField(max_length=200)
school = models.ForeignKey(School)
에서 기존 필드를 대체합니다 :
firm_url = models.URLField('Bio', max_length=200)
firm_name = models.CharField('Firm', max_length=100)
first = models.CharField('First Name', max_length=50)
last = models.CharField('Last Name', max_length=50)
year_graduated = models.IntegerField('Year graduated')
school = models.CharField(max_length=300)
school = models.ForeignKey(School)
이
from django.db import models
class School(models.Model):
school = models.CharField(max_length=200)
def __unicode__(self):
return self.school
class Lawyer(models.Model):
firm_url = models.URLField('Bio', max_length=200)
firm_name = models.CharField('Firm', max_length=100)
first = models.CharField('First Name', max_length=50)
last = models.CharField('Last Name', max_length=50)
year_graduated = models.IntegerField('Year graduated')
school = models.CharField(max_length=300)
school = models.ForeignKey(School)
class Meta:
ordering = ('last',)
def __unicode__(self):
return self.first
을 가지고 서버에이를 업로드 할 수 있습니다. 그럼 난 manage.py syncdb
을 실행합니다.
페이지를 열면 새로운 필드를 제외하고 이전과 같이 admin
이 표시됩니다. 나는 가정
는 새로운 필드를 추가 할 admin.py
나중에 업데이트 할 문제가 없다 : 다시
class LawyerAdmin(admin.ModelAdmin):
fieldsets = [
('Name', {'fields': ['first', 'last', 'firm_name', 'firm_url']}),
('School', {'fields': ['school', 'year_graduated']}),
]
list_display = ('first', 'last', 'school', 'year_graduated', 'firm_name', 'firm_url')
list_filter = ['year_graduated']
#search_fields = ['last', 'first']
search_fields = ['school__school']
search_fields = ['school__lawyer__last']
감사합니다!
주 학교 ForeignKey. CharField "school_name"등을 호출하는 것과 같이 다른 이름을 지정해야합니다. – jcdyer
jcd : 감사합니다. 나는이 일을 한 후에 학교 이름을 바꿀 것입니다. 검색은 내가 원하는 시점에서 작동하기 때문에 어떻게 작동하는지 이해할 수 없습니다. 결국 키워드 검색을 추가하고 싶습니다. – Zeynel
나는이 질문이 왜 왜곡 된 것인지 궁금해하고 있었다. 몇 가지 좋은 해답을 얻었고 문제를 해결할 수 있었고 많은 것을 배웠습니다. 답변을 얻은 모든 분들께 다시 한번 감사드립니다. – Zeynel