【发布时间】:2016-10-19 18:16:38
【问题描述】:
我正在尝试根据 request.POST 创建一本新书并进行评论。这里的问题是数据需要使用外键进入两个模型。这是请求。POST:
def add(request):
if request.method == 'POST':
result = Review.objects.addBook_and_Review(
user=request.session['id'],
title=request.POST['title'],
author=request.POST['author'],
new_author=request.POST['new_author'],
review=request.POST['review'],
rating=request.POST['rating']
)
return redirect('add')
else:
return render(request, 'books/add.html')
这里是自定义管理器和两个模型(Review 和 Book)。请注意带有外键的 Review 模型。
class ReviewManager(models.Manager):
def addBook_and_Review(self, **kwargs):
#custom manager code here
return True
class BookManager(models.Manager):
print('hit book manager')
pass
class User(models.Model):
name = models.CharField(max_length=200)
alias = models.CharField(max_length=200)
email = models.EmailField()
pw_hash = models.CharField(max_length=200)
created_at = models.DateField(auto_now_add=True)
updated_at = models.DateField(auto_now=True)
objects = UserManager()
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=200)
created_at = models.DateField(auto_now_add=True)
updated_at = models.DateField(auto_now=True)
objects = BookManager()
class Review(models.Model):
review = models.CharField(max_length=1000)
rating = models.CharField(max_length=200)
created_at = models.DateField(auto_now_add=True)
updated_at = models.DateField(auto_now=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
book = models.ForeignKey(Book, on_delete=models.CASCADE)
objects = ReviewManager()
【问题讨论】:
-
那有什么问题?
-
除了您不验证您的数据;你当然应该使用表格来做到这一点。
标签: django django-models