これまで数回の問題を解決しましたが、これは日時フィールドの問題のみに関連していました。現在私は このエラーの理由を全く特定できません。これは本当にイライラしています。私は完全なモデルをそのビューと正確な関数で投稿しています。ここでトレースバックはコード内のエラー を示します。しかし、私は と思われる投稿の最後にForeignKeyフィールドに関連するProductモデルの日付時刻フィールドを追加しましたが、おそらくそれが役立つかもしれません。この問題についての少しの説明も大きな助けになるでしょう。お知らせ下さい。基数10のint()のリテラルが無効です: 'Moderationが必要です'
ProductReviewモデル:
class ProductReview(models.Model):
product = models.ForeignKey(
'catalogue.Product', related_name='reviews', null=True,
on_delete=models.SET_NULL)
SCORE_CHOICES = tuple([(x, x) for x in range(0, 6)])
score = models.SmallIntegerField(_("Score"), choices=SCORE_CHOICES)
title = models.CharField(
verbose_name=pgettext_lazy(u"Product review title", u"Title"),
max_length=255, validators=[validators.non_whitespace])
body = models.TextField(_("Body"))
user = models.ForeignKey(
AUTH_USER_MODEL, related_name='reviews', null=True, blank=True)
name = models.CharField(
pgettext_lazy(u"Anonymous reviewer name", u"Name"),
max_length=255, blank=True)
email = models.EmailField(_("Email"), blank=True)
homepage = models.URLField(_("URL"), blank=True)
FOR_MODERATION, APPROVED, REJECTED = 0, 1, 2
STATUS_CHOICES = (
(FOR_MODERATION, _("Requires moderation")),
(APPROVED, _("Approved")),
(REJECTED, _("Rejected")),
)
status = models.SmallIntegerField(
_("Status"), choices=STATUS_CHOICES, default="Requires moderation")
total_votes = models.IntegerField(
_("Total Votes"), default=0) # upvotes + down votes
delta_votes = models.IntegerField(
_("Delta Votes"), default=0, db_index=True) # upvotes - down votes
date_created = models.DateTimeField(auto_now_add=True)
objects = ProductReviewQuerySet.as_manager()
class Meta:
app_label = 'reviews'
ordering = ['-delta_votes', 'id']
unique_together = (('product', 'user'),)
verbose_name = _('Product review')
verbose_name_plural = _('Product reviews')
def save(self, *args, **kwargs):
super(ProductReview, self).save(*args, **kwargs) #This line shows error
self.product.update_rating()
ビュー:ビューform_valid機能で
class CreateProductReview(CreateView):
template_name = "catalogue/reviews/review_form.html"
model = ProductReview
product_model = Product
form_class = ProductReviewForm
view_signal = review_added
def dispatch(self, request, *args, **kwargs):
self.product = get_object_or_404(
self.product_model, pk=kwargs['product_pk'])
if not self.product.is_review_permitted(request.user):
if self.product.has_review_by(request.user):
message = _("You have already reviewed this product!")
else:
message = _("You can't leave a review for this product.")
messages.warning(self.request, message)
return redirect(self.product.get_absolute_url())
return super(CreateProductReview, self).dispatch(
request, *args, **kwargs)
:レビューで呼び出さ
def form_valid(self, form):
response = super(CreateProductReview, self).form_valid(form)
self.send_signal(self.request, response, self.object)
return response
関連モデルは、いくつかの日付フィールドが含まれています
class Product(models.Model):
.....#fields intentionally not posted to keep question summarized on stackoverflow
date_created = models.DateTimeField(_("Date created"), auto_now_add=True)
date_updated = models.DateTimeField(
_("Date updated"), auto_now=True, db_index=True)
トレースバック:
File "C:\Users\AliKhan\amazonclone\market\catalogue\reviews\views.py" in dispatch
40. request, *args, **kwargs)
File "C:\Users\AliKhan\amazonclone\market\catalogue\reviews\views.py" in form_valid
54. response = super(CreateProductReview, self).form_valid(form)
File "C:\Users\AliKhan\amazonclone\market\catalogue\reviews\models.py" in save
108. super(ProductReview, self).save(*args, **kwargs)
Exception Type: ValueError at /catalogue/new-product_4/reviews/add/
Exception Value: invalid literal for int() with base 10: 'Requires moderation'
は、エラーが 'あなたは、文字列を変換することはできません明確であることを表す整数を使用する必要がありますキャストの試み? – EdChum