0

So I have this codes. the view:

class CreateDateView(LoginRequiredMixin, CreateView):
    template_name = 'app/date/form.html'
    form_class = DateForm

    def form_valid(self, form):
        form.instance.user = self.request.user
        return super().form_valid(form)

the modelform:

class DateForm(ModelForm):
    image = forms.ImageField()

    class Meta:
        model = Date
        exclude = ('user',)

models:

class Date(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    place = models.ForeignKey('Place', on_delete=models.CASCADE, null=True)
    title = models.CharField(max_length=64, null=True)
    description = models.TextField(max_length=640, blank=True)
    slug = models.CharField(max_length=80, unique=True, editable=False)
    date = models.DateField(auto_now_add=True)
    rating = models.PositiveSmallIntegerField(default=0, validators=[MaxValueValidator(5)])


class Photo(models.Model):
    date = models.ForeignKey(Date, on_delete=models.CASCADE)
    image = models.ImageField(verbose_name='Photos', upload_to='media/date/photos/')

the form:

<form action="{% url 'app:date_form' %}" method="post">
    {% csrf_token %}
    <div class="form-container">
        <h1>New Date</h1>
        <p class="p-form">Title</p>
        {{ form.title }}
        <p class="p-form">Description</p>
        {{ form.description }}
        <p class="p-form">Place</p>
        {{ form.place }}
        <p class="p-form">Rating</p>
        {{ form.rating }}
        {{ form.image }}
    </div> 
    <div class="buttons">
        <input type="submit" value="Create" class="create-button redirection no_decoration">
        <a href="{% url 'app:home' %}" class="redirection no_decoration">Back</a>
    </div>
</form>

the form error:

  <tr>
    <th><label for="id_image">Image:</label></th>
    <td>
      <ul class="errorlist"><li>This field is required.</li></ul>
      <input type="file" name="image" accept="image/*" required id="id_image">
    </td>
  </tr>
<ul class="errorlist"><li>image<ul class="errorlist"><li>This field is required.</li></ul></li></ul>

Whenever I try to save my form, its form_invalid method is being called and it doesn't save the form. What is the matter? How do I save extra field of ForeignKey model? How can I get that images sent via form? Thanks!

0 Answers0