【发布时间】:2021-06-05 03:24:30
【问题描述】:
我编写了一个由 2 个模型组成的小型支持应用程序,请参见下文。 当我在 django 管理面板上回答支持工单时,我并不总是想为我添加到工单的每个回复手动设置作者姓名。相反,我想要我自动设置为作者的 request.user 作为初始值。遗憾的是,我无法在 django 文档中找到任何似乎可以解决此问题的解决方案...
admin.py
class SupportTicketRepliesInline(admin.TabularInline):
model = SupportTicketReplies
extra = 0
min_num = 1
class SupportTicketsAdmin(admin.ModelAdmin):
list_display = ['requester', 'creation_date', 'status', 'category', 'subject']
ordering = ['-creation_date']
list_filter = ['creation_date']
inlines = [
SupportTicketRepliesInline,
]
admin.site.register(SupportTickets, SupportTicketsAdmin)
models.py
...
class SupportTickets(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True)
requester = models.ForeignKey(User, on_delete=models.CASCADE, null=False, blank=False)
category = models.IntegerField(choices=TICKET_CATEGORY, verbose_name='Ticket Category')
subject = models.CharField(max_length=30)
description = models.TextField(max_length=2000, blank=False, verbose_name='Problem description')
status = models.IntegerField(choices=STATUS_OF_TICKET, verbose_name='Ticket Status', default=2)
creation_date = models.DateTimeField(auto_now_add=True, blank=False)
def publish(self):
self.creation_date = timezone.now()
self.save()
class Meta:
verbose_name = "Support Ticket"
verbose_name_plural = "Support Tickets"
ordering = ['-creation_date']
models.py
class SupportTicketReplies(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
ticket = ForeignKey(SupportTickets, related_name='replies', on_delete=models.CASCADE)
author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Author', blank=True)
content = models.TextField(verbose_name="Content", max_length=2000)
creation_date = models.DateTimeField(auto_now_add=True, blank=False)
class Meta:
verbose_name = "Ticket Reply"
verbose_name_plural = "Ticket Replies"
ordering = ['creation_date']
【问题讨论】:
标签: python django django-admin