[英]I have a problem in my Django project when I try to push to heroku a problem occurs
[英]Problem when I try to save data in my database Django
我嘗試制作一個純api Django,並在我的數據庫中保存一些數據以供練習。
但是當我嘗試保存數據時遇到了一些問題。
例如
我為 post 方法嘗試了此代碼
def post(self, request, *args, **kwargs):
form = UpdateModelForm(self.request.POST)
if form.is_valid():
obj = form.save(commit=True)
obj_data = obj.serialize()
return self.render_to_response(obj_data, status=201)
if form.errors:
data = json.dumps(form.errors)
return self.render_to_response(data, status=400)
data = {"message": "Not Allowed"}
return self.render_to_response(data, status=400)
這是我的表單驗證
from django import forms
from .models import Update as UpdateModel
class UpdateModelForm(forms.ModelForm):
class Meta:
model = UpdateModel
fields = [
'user',
'content',
'image'
]
和模型
class UpdateQuerySet(models.QuerySet):
#def serialize(self):
# qs = self
# return serialize('json', qs, fields=('user', 'content', 'image'))
def serialize(self):
list_values = list(self.values("user", "content", "image", "id"))
return json.dumps(list_values)
class UpdateManager(models.Manager):
def get_queryset(self):
return UpdateQuerySet(self.model, using=self._db)
# Create your models here.
class Update(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
content = models.TextField(blank=True, null=True)
image = models.ImageField(upload_to=upload_update_image, blank=True, null=True)
timestamp = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now_add=True)
objects = UpdateManager()
def __str__self(self):
return self.content or ""
def serialize(self):
try:
image = self.image.url
except:
image = ""
data = {
"id": self.id,
"user": self.user,
"content": self.content,
"image": image
}
data_json = json.dumps(data)
return data_json
當我嘗試使用該方法時出現了我的問題,我收到了這個可疑的錯誤。 你認為那是什么?
{"user": ["Select a valid choice. That choice is not one of the available choices."]}
嘗試:
data = {
"id": self.id,
"user": self.user.id,
"content": self.content,
"image": image
}
注意:傳遞用戶 ID 而不是用戶對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.