0
Django Actionsでジョブの総コストを計算しようとしていますが、そのジョブを完了したとマークし、Django - 特定のインスタンスに関連するリストのManytoManyを照会します
TypeError at /admin/donaldson_motors_appV2/job/
'Job' object is not iterable
方法(admin.py内側):
def job_complete(self, request, queryset):
# Sets the date the job was complete to the time the email was sent.
date_complete = queryset.update(date_complete=datetime.datetime.now())
total_cost = 0
for job in queryset:
job_items = Item.objects.get(job)
total_cost += job_items
total_cost += 50
queryset.update(total_cost=total_cost)
# Loops all the customers selected.
for job in queryset:
if job.vehicle.user.user.email:
send_mail("Donaldson Motors - Vehicle Pickup", # Subject
"Hello %s! Your vehicle (Registration Number: %s Manufacturer: %s Model: %s) "
"is ready to pick up now." % # Message
(job.vehicle.user.user.username, job.vehicle.reg_no,
job.vehicle.make, job.vehicle.model), # Wildcard fillers
"[email protected]", # From
[job.vehicle.user.user.email,]) # To
# Notifies Staff member email has been sent
self.message_user(request, "Vehicle is ready to pickup. User has been notified.")
job_complete.short_description = 'Job is Complete'
モデル私の問題は、私が仕事で使用するとエラーを受け取るされている項目のコストを取得する問題を抱えていますということです。
class Item(models.Model):
# Item attributes
item_name = models.CharField(max_length=50)
cost = models.FloatField()
quantity = models.IntegerField()
# One Supplier can have many Items.
supplier = models.ForeignKey(Supplier)
def __str__(self):
return self.item_name
class Job(models.Model):
# Many Item can be used in many Jobs.
item = models.ManyToManyField(Item)
# One Vehicle can have many Jobs.
vehicle = models.ForeignKey(Vehicle)
# Job attributes
job_desc = models.TextField()
date_booked = models.DateTimeField()
date_complete = models.DateField(null=True, blank=True)
total_cost = models.FloatField(null=True, blank=True)
def __str__(self):
return "%s, %s, %s" % (self.vehicle.reg_no, self.date_booked.time(), self.date_booked.date().isoformat())
要約すると、私の質問は、特定の仕事に関連する項目のリストにどのようにアクセスできますか?
はどうもありがとうございました。なぜ私はそれを試みることを考えなかったのか分からない。 –