모델에서 생성 된 양식에 직면 한 사용자가 있습니다. 모델에 사이트 "섹션"에 대한 외래 키가 있습니다.이 폼을 제출하면 IntegrityError가 반환됩니다 ("section_id"열의 null 값은 null 제약 조건을 위반합니다). 나는 그 문제가 내가 작업하기 시작할 때까지 간단했다라고 생각했다. 버그는 내 개발 서버에서만 발생합니다 (CentOS 릴리스 5.5 (최종)). 내 로컬 환경 (Mac OS X 10.5.8)에서이 문제가 발생하지 않습니다.장고 양식 필드가 저장시 누락되었습니다.
파이썬 쉘에 입력하여 양식 객체를 검사했습니다. 내 dev env에 "section"필드 (form.fields.section)가 없습니다. 프로젝트 코드와 django 버전은 내 로컬과 dev에서 동일합니다. 내 좌절감을 추가하는 것은 사용자가 마주 보는 양식에 숨겨진 "섹션"필드가 있지만 사실상 해당 데이터가 뷰에 게시 될 때 양식 필드가 더 이상 존재하지 않는다는 사실입니다. 이 버그의 원인에 대한 통찰력은 크게 인정 될 것이고 Rogaine의 희생에서 나를 구할 수있을 것입니다.
미리 감사드립니다. Chris.
코드 :
views.py
def event_registration(request, slug):
section = get_object_or_404(Section, section__slug=slug)
parent_page = Page.objects.get(section=section, slug='overview')
page = Page.objects.get(section=section, slug='events-registration')
form = EventRegistrationForm(label_suffix='')
submitted = False
if request.POST.has_key('event'):
form = EventRegistrationForm(request.POST)
if form.is_valid():
form.save()
submitted = True
context = RequestContext(request)
return render_to_response('section/event_registration.html',
{
'section': section,
'page': page,
'form': form,
'submitted': submitted
},
context_instance=context)
forms.py
class EventRegistrationForm(better_forms.BetterModelForm):
class Meta:
model = EventRegistration
fieldsets = [
('Step 1', {
'fields': ['event', 'guests']
}),
('Step 2', {
'fields': ['first_name', 'email', 'last_name', 'phone', 'school_name']
}),
]
models.py
class EventRegistration(models.Model):
section = models.ForeignKey(Theater, verbose_name=_('Section'),
help_text=_("The Site Section"))
event = models.ForeignKey(Event, verbose_name=_('Event'))
guests = models.IntegerField(_('Number of Guests?'))
first_name = models.CharField(_('First Name'), max_length=100)
last_name = models.CharField(_('Last Name'), max_length=100)
email = models.CharField(_('E-Mail Address'), max_length=255)
phone = PhoneNumberField(_('Daytime Phone Number'))
school_name = models.CharField(_('School Name'), max_length=200, blank=True, null=True)
몇 가지 코드를 게시하십시오. 즉, forms.py, views.py, models.py – DTing
게시 된 코드. – Kenzic
전체보기를 게시 할 수 있습니까? 폼에 인스턴스를 설정하지 않으므로 저장하려고 할 때 섹션 값이 없습니다. 더 많은 의견을 게시하면 답변을 드릴 수 있습니다. – DTing