Ошибка типа в / gym / ninja / ninja () получила неожиданный аргумент ключевого слова - PullRequest
0 голосов
/ 16 апреля 2020

На самом деле я пытаюсь передать подробности от моего контакта до них из моего приложения django, но я сталкиваюсь с той же ошибкой со всеми переменными, я могу получить подробности со своей страницы html и могу распечатать это в моем коде vs кода, но когда я пытаюсь сохранить его в моей модели, я сталкиваюсь с той же ошибкой для всех переменных, поэтому, пожалуйста, кто-нибудь может мне помочь с этим

html код:

<form method="POST" action="">
     {% csrf_token %}
     <div class="container">
         <div class="form-row">
             <div class="col">
                 <label for="inputEmail1">E-mail</label>
                 <input type="text" class="form-control" name="emails" id="emails" placeholder="Enter your E-mail">
             </div>
             <div class="col">
                 <label for="inputEmail2">Phone-Number</label>
                 <input type="text" class="form-control" name="phones" id="phones" placeholder="Enter your phone number">
             </div>
         </div>
         <div class="form-row">
             <div class="col">
                 <label for="inputEmail1">Age</label>
                 <input type="text" class="form-control" name="ages" id="ages" placeholder="Enter your age">
             </div>
             <div class="col">
                 <label for="inputEmail2">Height</label>
                 <input type="text" class="form-control" name="height" id="height" placeholder="Enter your height">
             </div>
         </div>
         <div class="form-row">
             <div class="col">
                 <label for="inputEmail4">Weight</label>
                 <input type="text" class="form-control" name="weight" id="weight" placeholder="Enter your weight">
             </div>
             <div class="col">
                 <label for="inputEmail3">Food Habit</label>
                 <input type="text" class="form-control" name="habit" id="habit" placeholder="Are you veg/non-veg/vegan">
             </div>
         </div>
         <br>
         <div class="form-group">
             <label for="exampleFormControlTextarea1">Enter other important detail\'s</label>
             <textarea class="form-control" placeholder="Enter your message here....."
              id="messagess"
              name="messagess"
              rows="5"></textarea>
         </div>
         <button type="submit" class="btn btn-danger">Submit</button>
     </div>     
</form>

моя модель, которую я использовал:

 class ninja(models.Model):
     ninjaemail= models.CharField(max_length=50)
     phones = models.CharField(max_length=50)
     ages = models.CharField(max_length=50)
     height = models.CharField(max_length=50)
     weight = models.CharField(max_length=50)
     habit = models.CharField(max_length=100)
     message = models.CharField(max_length=800)

мои views.py, где я столкнулся с проблемой

def ninja(request):
     if request.method=='POST':
          emails = request.POST['emails']
          phones = request.POST['phones']
          ages = request.POST['ages']
          height = request.POST['height']
          weight = request.POST['weight']
          habit = request.POST['habit']
          messagess = request.POST['messagess']
          ninj=ninja(ninjaemail=emails,phones=phones,ages=ages,height=height,weight=weight,habit=habit,messages=messagess)
         ninj.save()

1 Ответ

0 голосов
/ 16 апреля 2020

У вашей модели ниндзя есть свойство message, но при создании экземпляра ниндзя вы пытаетесь установить свойство messagess.

Поэтому измените строку

ninj=ninja(ninjaemail=emails,phones=phones,ages=ages,height=height,weight=weight,habit=habit,messagess=messagess)

на

ninj = ninja(ninjaemail=emails,
           phones=phones,
           ages=ages,
           height=height,
           weight=weight,
           habit=habit,
           message=messagess
     )

То, что ошибка также возникает для любой другой переменной, может быть вызвано вашим именованием. Вы пытаетесь создать объект ниндзя, вызывая ninja(ninjaemail= ....) внутри ninja метода. Так что, вероятно, это не объект, а метод. Измените свое имя следующим образом:

class ninja(models.Model):
     ...

на

class Ninja(models.Model):
    ...

и

def ninja(request):
    ...

на

def create_ninja(request):
   ...
...