Перенаправление Django, если пользователь создал объект - PullRequest
0 голосов
/ 11 октября 2019

в моей модели ПОЛЬЗОВАТЕЛЬ создаст объект startup_name, однако я хочу выполнить проверку, когда пользователь снова нажимает кнопку, чтобы он создал объект, чтобы он был перенаправлен на другую страницу.

     class Startup ( models.Model ) :
         author = models.OneToOneField ( User , on_delete = models.CASCADE )
         startup_name = models.CharField ( 'Startup Name' , max_length = 32 , null = False , blank = False )

     class startupform(forms.ModelForm):
         class Meta:
             model = Startup
             fields = ('startup_name',)
             widgets = {
                 'startup_name': forms.TextInput(attrs = {'class':'form-control'}),
             }

         def clean(self):
             super ( ).clean ( )
             startup_name = self.cleaned_data.get ( 'startup_name' )
             startup_qs = Startup.objects.filter ( startup_name = startup_name )
             if startup_qs.exists ( ):
                 raise forms.ValidationError ( 'This Startup Already Exist!' )

     @login_required
     def create_startupform(request) :
         q = Startup.objects.all()
         if q.exists():
             return redirect ( 'str_detailedview' )
         else:
             form = startupform ( request.POST or None )
             if form.is_valid ( ) :
                 instance = form.save (commit = False)
                 instance.author = request.user
                 instance.save()
             return redirect ( 'str_detailedview' )
        else:
             form = startupform()
        return render ( request , 'str_name.html' , { 'form' : form } )

1 Ответ

0 голосов
/ 11 октября 2019

вам нужно проверить имя входа в Startup модели и, если она существует, вы можете перенаправить:

     @login_required
     def create_startupform(request) :
         if request.method == 'POST' :
             form = startupform ( request.POST )
             if form.is_valid ( ) :
                 startup_name_input = request.POST.get('startup_name')
                 if Startup.objects.filter(startup_name='startup_name_input').exists():
                      return render(request, 'some_template.html', {'form' : form})
                 result = form.save ( commit = False )
                 result.author = request.user
                 result.save ( )
                 return redirect ( 'test', startup_id = result.pk)
         else :
             form = startupform ( )
         return render ( request , 'str_name.html' , { 'form' : form } )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...