0
我已經URLPATTERN ID爲如何從url到表單的方法獲取一個變量 - 保存?
...
url(r'^3/(?P<id>[-\w]+)', Biochemical_analysis_of_blood.as_view(),\
name='biochemical_analysis_view'),
...
views.py
class Biochemical_analysis_of_blood(CreateView):
model = BiochemicalAnalysisOfBlood
form_class = BiochemicalAnalysisOfBloodForm
template_name = "biochemical_analysis_of_blood.html"
success_url = reverse_lazy("patients")
def get_context_data(self, **kwargs):
context = super(Biochemical_analysis_of_blood, self).get_context_data(**kwargs)
context["patient"] = Patient.objects.get(id=self.kwargs['id'])
context["caption"] = 'Біохімічний аналіз крові'
context["new"] = True
return context
forms.py
class SaveForms():
def save(self, commit=True):
analysis = Analyzes()
sid = transaction.savepoint()
analysis.name = self.data["name"]
analysis.patient_id = Patient.objects.get(id=1)
analysis.who_send = self.data["who_send"]
analysis.who_is_doctor = self.data["who_is_doctor"]
analysis.lab_user_id = Doctor.objects.get(id=self.data["lab_user_id"])
analysis.additional_lab_user = self.data["lab_user_add"]
analysis.date = self.data["date"]
analysis.type = 3
analysis.date_analysis = self.data["date_analysis"]
analysis.save()
# Your analysis is created, attach it to the form instance object
self.instance.analysis_id = analysis.id
return super().save(commit)
我怎樣才能從URL變量 「ID」 來形成的方法 - 保存?類SaveForms將由其他forms.models類執行,因爲它們都必須具有相同的保存方法。
...
analysis.patient_id = Patient.objects.get(id=1)
...
改爲「1」我必須使用url中的「id」...誰能幫助我?
class BiochemicalAnalysisOfBloodForm(SaveForms, forms.ModelForm):
...
幾乎所有的保存方法都是不必要的。這就是Django模型已經做到的。 –
其餘的,請參閱https://docs.djangoproject.com/en/1.11/topics/class-based-views/generic-editing/#models-and-request-user - 它談論request.user,但是原理完全一樣。 –