我正在学习Django,并挑战自己创建一个小票系统作为研究案例。在
我现在有点麻烦了。在
如何当我保存一个“票证”,Django获得当前登录用户,并在我的票证模型的“usario”字段上设置为默认值?在
这是我的models.py文件:from django.contrib.auth.models import User
from django.db import models
from datetime import datetime
class Projeto(models.Model):
"""
Classe que gere os Projetos
Permite que se cadastre N usuários por Projeto
Retorna:
NOME_DO_PROJETO | SITE_DO_PROJETO
"""
nome = models.CharField(max_length=100)
site = models.CharField(max_length=200)
informacoes = models.TextField(blank=True)
usuarios = models.ManyToManyField(User, related_name='projetos')
def __str__(self):
return self.nome + " | " + self.site
class Ticket(models.Model):
"""
Classe que gere os Tickets no sistema.
Retorna:
DATA HORA | TITULO DO CHAMADO
"""
TIPOS_TICKET = (
('BUG', 'Bug'),
('URGENTE', 'Urgente'),
('FINANCEIRO', 'Financeiro'),
('MELHORIA', 'Melhoria')
)
STATUS_TICKET = (
('ABERTO', 'Aberto'),
('AGUARDANDO_CLIENTE', 'Aguardando Cliente'),
('EM_ANALISE', 'Em Análise'),
('FINALIZADO', 'Finalizado'),
('CANCELADO', 'Cancelado'),
)
titulo = models.CharField(max_length=200)
conteudo = models.TextField()
tipo = models.CharField(max_length=30, choices=TIPOS_TICKET, default='BUG')
status = models.CharField(max_length=30, choices=STATUS_TICKET, default='ABERTO')
projeto = models.ForeignKey(
Projeto,
on_delete=models.CASCADE,
limit_choices_to={'usuarios':1}
)
usuario = models.ForeignKey(
User,
on_delete=models.CASCADE,
null=True
)
data_abertura = models.DateTimeField('Data Abertura', auto_now_add=True)
data_fechamento = models.DateTimeField('Data Fechamento', blank=True, null=True)
def __str__(self):
return str(datetime.strftime(self.data_abertura, "%d/%m/%y %H:%M") + " | " + self.titulo)
def save(self, *args, **kwargs):
self.usuario = User
super(Ticket, self).save(*args, **kwargs)
class TicketMsg(models.Model):
"""
Mensagens dos tickets
Retorna:
texto da mensagem
"""
texto = models.TextField()
ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE)
data_resposta = models.DateTimeField('Data Resposta')
def __str__(self):
return str(self.texto)
以及我的admin.py文件:
^{pr2}$
这是我从Django管理员那里得到的票单。在
这个想法是使用默认的Django用户系统来识别谁在试图开罚单。在
我成功地让系统过滤每个用户可以打开票据的项目,但是现在我不能将输入新票据的当前用户设置为默认值。在
这是我的表格。在
欢迎一切帮助!
谢谢你们!在