0
비즈니스/models.py
class BusinessType(models.Model):
title = models.CharField(max_length=100)
created = models.DateTimeField('date created', auto_now_add=True)
modified = models.DateTimeField('last modified', auto_now=True)
class Meta:
db_table = 'business_types'
def __str__(self):
return self.title
class Business(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=200)
business_type = models.ForeignKey(BusinessType, on_delete=models.CASCADE)
created = models.DateTimeField('date created', auto_now_add=True)
modified = models.DateTimeField('last modified', auto_now=True)
class Meta:
verbose_name = 'business'
verbose_name_plural = 'businesses'
db_table = 'businesses'
def __str__(self):
return self.name
비즈니스/Forms.py
class BusinessForm(ModelForm):
class Meta:
model = Business
fields = ['user']
비즈니스/views.py
class BusinessCreate(LoginRequiredMixin, CreateView):
model = Business
form = BusinessForm
def form_valid(self, form):
messages.success(self.request, 'form is valid')
form.instance.user = self.request.user
form.save()
def get_success_url(self):
messages.success(self.request, 'Business Added Successfully')
return reverse('business:list')
템플릿을로드하면 오류가 발생합니다.
'fields'속성없이 ModelFormMixin (BusinessCreate의 기본 클래스)을 사용하는 것은 금지됩니다.
내 시험
views class
-fields
를 이동 한 후, 그것을 잘 노력하고 있습니다. 그러나 필자는이 양식을 여러보기에서 사용할 수 있으므로 필요에 따라 나중에 여러 페이지에서 변경해야하기 때문에 그렇게하고 싶지 않습니다.
덕분에 당신은'데프와 같은 좀 더 도움이 될 수 있습니다 나는 지난 일주 –
에서이 오류와 함께 붙어 있었다, @daniel get_success_url'은 레코드를 데이터베이스에 저장 한 후 호출하지 않습니다. 'business.views.BusinessCreate 뷰가 HttpResponse 객체를 반환하지 않았다는 오류가 발생했습니다. 대신 None을 반환했습니다. ' –
'get_success_url'은 당신이 오버라이드 한'form_valid'의 기본 구현에 의해 호출됩니다. 해당 메소드에서 리디렉션을 리턴해야합니다 (예 : return redirect (self.get_success_url()). 'messages.success' 호출은 실제로 그 메소드에 있어서는 안된다. –