Как сделать поле обязательным, если запрос POST, но если запрос PUT, поле не требуется? (django модель) - PullRequest
0 голосов
/ 05 августа 2020

Я создал модель из 7 полей, где все поля blank=True, null=True, кроме одного, обязательны. Проблема в том, что я хочу, чтобы он требовал только request - это POST, иначе это не требуется, например: в случае, если пользователям метода PUT не нужно упоминать вообще.

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Вы должны основывать свои требования к файлам не на типе запроса, а на ваших реквизитах.

Я предполагаю, что если вы редактируете модель, у вас есть предварительно заполненные поля, что означает, что у вас есть доступ к данным вашей модели в вашем компоненте.

Итак, вместо того, чтобы сосредоточиться на вашем типе запроса, сделайте что-то вроде этого:

import React from 'react'

const myComponent = ({ myData = {}}) => {
  return (
    <input type='text' required={ myData && myData.whatever } />
  )  
}

export default myComponent

Используя этот синтаксис, ваше поле будет требоваться только в том случае, если вы передаете существующую модель.

0 голосов
/ 05 августа 2020

как насчет того, чтобы сделать проверку в самой функции views.py? в views.py

def ...(request):
   if request.method == 'PUT':
       if not <field you want>:
           <will run if the field was empty>
       else:
           <will run if there was a value>
   elif request.method == 'POST':
       <will run if the method is POST>
...