簡體   English   中英

如何在 Django 視圖中創建模型對象?

[英]How do you create model objects in a Django view?

我知道如何通過提交的表單創建模型對象,但我想知道如何在視圖中創建對象而不必通過表單。 我知道這可以通過 shell 來完成,但我有不同的理由在視圖中這樣做。

例如,假設我有一個包含標題和正文的博客表。 我將如何創建一個設置標題和正文字段的新對象?

def create_blog(request):
    # Create a new blog object.
    blog_obj.title= "First Blog"
    blog_obj.body= "This is the body"

更新:這是我的model.py

from django.db import models 

class Rating(models.Model):
    movie_name= models.CharField(max_length=100)
    total_ratings = models.IntegerField()
    total_rating_value = models.IntegerField()
    rating_average = models.DecimalField(max_digits=2, decimal_places=2)

更新 2:當我嘗試保存我的對象時,它返回一個錯誤(類“decimal.InvalidOperation”)。 rating_average 是一個 Decimal_field。 這是我的實際對象:

rating_obj = Rating(movie_name="Test Movie", total_ratings=1, total_rating_value= 5, rating_average= 5.0)

這是直接的 Python 代碼,沒有任何特定於 Django 的內容:

blog_obj = Blog(title="First Blog", body="This is the body")

也許您想閱讀易於理解的Django 教程

編輯:
為了與你解決你的問題DecimalField你需要設置max_digits大於decimal_places

文檔

請注意,此數字必須大於或等於 decimal_places。

建議創建模型管理器。 來自這里的示例:

class BookManager(models.Manager):
    def create_book(self, title):
        book = self.create(title=title)
        # do something with the book
        return book

class Book(models.Model):
    title = models.CharField(max_length=100)

    objects = BookManager()

book = Book.objects.create_book("Pride and Prejudice")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM