내 양식의 하위 외래 키 필드에 상위 필드의 ID를 추가하려고합니다. 사용자에게 위치 목록이 있습니다. 해당 위치에서 해당 위치의 평가를 추가 할 수 있습니다. 대신 나에게 모든 위치의 목록을 제공하는 평가 양식, 나는 올바른외래 키 양식에 변수 추가
urls.py
url(r'^accounts/loggedin/locations/all/$', 'assessments.views.locations'),
url(r'^locations/get/(?P<location_id>\d+)/$', 'assessments.views.location'),
url(r'^accounts/loggedin/locations/create/$', 'assessments.views.create'),
url(r'^locations/get/(?P<location_id>\d+)/add_assessment/$', 'assessments.views.create_assessment'),
models.py
class Location(models.Model):
address = models.CharField()
def __unicode__(self):
return u'%s' % self.address
class Assessment(models.Model):
location = models.ForeignKey(Location)
title = models.CharField()
def __unicode__(self):
return u'%s' % self.location
views.py를 선택하여 자동으로 싶습니다
def create_assessment(request, location_id):
location = Location.objects.get(pk=location_id)
if request.POST:
form = AssessmentForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/accounts/loggedin/assessments/all/')
else:
form = AssessmentForm()
args = {}
args.update(csrf(request))
args['form'] = form
return render_to_response('assessment/create_assessment.html', args,)
forms.py
class LocationForm(forms.ModelForm):
class Meta:
model = Location
class AssessmentForm(forms.ModelForm):
class Meta:
model = Assessment
을 따르십시오. 템플릿에 넣은 것을 열거합니다.
@ user3972986 오류가 발생했는지 설명해 주시겠습니까? 변수 Location이 인스턴스가 아닌 클래스 인'{{Location.location_id}} '를 사용하고있을 수 있습니다. 'location' 변수를 사용해보십시오. – srj
도 하드 코딩 된 URL을 사용하지 않는 것이 가장 좋습니다. 대신 양식에 django의 url 태그를 사용할 수 있습니다. 을 사용하면 모든 템플릿 코드에서 실수하지 않고도 API URL을 쉽게 변경할 수 있습니다. – srj