gpt4 book ai didi

python - Django - 创建电话评论应用程序模型的方向是否正确?

转载 作者:行者123 更新时间:2023-11-28 17:56:00 25 4
gpt4 key购买 nike

我是 Django 的初学者。我正在为名为 PhoneReview 的 Django 应用程序构建数据模型。它将存储与最新手机相关的评论。它的表格应该包括:

一个。品牌——品牌的详细信息,例如名称、产地、制造时间等

模型——模型的详细信息,例如模型名称、发布日期、平台等

评论——手机评论文章及发表日期等

Review 和 Model 之间的多对多关系。

这是我在 models.py 中的代码:

from django.db import models
from django.template.defaultfilters import slugify

# Create your models here.
class Brand(models.Model):
brandName = models.CharField(max_length=100)
origin = models.CharField(max_length=100)
manufacturingSince = models.CharField(max_length=50, default='null')
def __str__(self):
return self.brandName

class PhoneModel(models.Model):
modelName = models.CharField(max_length=100)
launchDate = models.CharField(max_length=100)
platform = models.CharField(max_length=100)
def __str__(self):
return self.modelName

class Review(models.Model):
model_name_many_to_many = models.ManyToManyField(PhoneModel)
reviewArticle = models.CharField(max_length=1000)
datePublished = models.DateField(auto_now=True)
slug = models.SlugField(max_length=150, default='null')
def __str__(self):
return self.reviewArticle

我的代码正确吗?我的方向正确吗?

最佳答案

不要在模型字段中使用驼峰命名法。使用 snake_case。第二件事是,当您希望字段默认为“null”时,只需使用 null=True, blank=True(optional value)。我还为您的 ManyToManyField 提供了 related_name,因此您可以使用 PhoneModelInstance.reviews.all() 来获取您对该特定手机型号的所有评论。对于包含文本的大型字段,请使用 TextField。

编辑

我还在 PhoneModel 中添加了指向品牌的外键。

from django.db import models
from django.template.defaultfilters import slugify

# Create your models here.
class Brand(models.Model):
brand_name = models.CharField(max_length=100)
origin = models.CharField(max_length=100)
manufacturing_since = models.TextField(null=True, blank=True)

def __str__(self):
return self.brand_name

class PhoneModel(models.Model):
brand_fk = models.ForeignKey(Brand)
model_name = models.CharField(max_length=100)
launch_date = models.CharField(max_length=100)
platform = models.CharField(max_length=100)

def __str__(self):
return self.model_name

class Review(models.Model):
phone_model = models.ManyToManyField(PhoneModel, related_name='reviews')
review_article = models.TextField()
date_published = models.DateField(auto_now=True)
slug = models.SlugField(max_length=150, null=True, blank=True)

def __str__(self):
return self.review_article

关于python - Django - 创建电话评论应用程序模型的方向是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58388298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com