Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ако имаме този модел:
- from django.db import models
- from django.utils import timezone
- class BlogPost(models.Model):
- title = models.CharField(max_length=255)
- content = models.TextField()
- author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
- published_date = models.DateTimeField(blank=True, null=True)
- views = models.IntegerField(default=0)
- Ако във view-то след if request.method == "POST": запишем само този код:
- 1. Сценарий:
- form = BlogPostForm(request.POST)
- if form.is_valid():
- instance = form.save(commit=True)
- author: Няма да бъде попълнено автоматично.
- published_date: Няма да бъде попълнено автоматично.
- views: Ще бъде попълнено автоматично с 0 поради зададената стойност по подразбиране.
- 2. Сценарий:
- Ако искаме author и published_date да бъдат зададени, ще трябва да го направим ръчно:
- form = BlogPostForm(request.POST)
- if form.is_valid():
- instance = form.save(commit=False)
- instance.author = request.user # Задаване на автора ръчно
- instance.published_date = timezone.now() # Задаване на датата на публикуване ръчно
- instance.save() # Записване на обекта в базата данни
- 3. Как ще използваме формата във view-то:
- from django.utils import timezone
- from django.shortcuts import render, redirect
- from .forms import BlogPostForm
- def create_blog_post(request):
- if request.method == "POST":
- form = BlogPostForm(request.POST)
- if form.is_valid():
- instance = form.save(commit=False)
- instance.author = request.user # Задаваме текущия потребител като автор
- instance.published_date = timezone.now() # Задаваме текущата дата и час като дата на публикуване
- instance.save() # Записваме обекта в базата данни
- return redirect('success_view') # Пренасочване след успешен запис
- else:
- form = BlogPostForm()
- return render(request, 'create_blog_post.html', {'form': form})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement