Reputation: 294
I have forms created on my Django site, they have been manually created using HTML and then using JavaScript to POST
the form content to the model.
Now I am working on updates to the model. I've taken the existing HTML form for the page, but I can't work out how I map the view
fields to the HTML form?
Views.py
def update_event(request,event_id):
event = Event.objects.get(pk=event_id)
form = addEventForm(request.POST or None, instance=event)
return render(request, 'pages/update_event.html', {'event': event, form : form})
models.py
class Event(models.Model):
project = models.ForeignKey(Game, to_field='project_name', on_delete=models.CASCADE)
event_name = models.CharField(max_length=20)
event_date = models.DateTimeField(blank=True, null=True)
def __str__(self):
return str(self.event_name)
HTML
<div class="col-md-6">
<div class="mb-3">
<label class="form-label" for="event-name-label">Event Name</label>
<input type="text" class="form-control" id="event-name" value="" required>
<div class="valid-feedback">
Looks good!
</div>
<div class="invalid-feedback">
Please fill Event name.
</div>
</div>
</div>
I've tried using form.event_name
but this doesn't work.
Any help would be great
Thanks
Upvotes: 0
Views: 263
Reputation: 903
You have a syntax error in the last line of your view and you should use "form": form
And in your HTML code, you should use two brackets to using django HTML syntax: {{ form.instance.event_name }}
the last thing is instance
that you can see in the above phrase.
Upvotes: 1