我正在学习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管理员那里得到的票单。在

23cf427ba491ca27c2304dc917485dfd.png

这个想法是使用默认的Django用户系统来识别谁在试图开罚单。在

我成功地让系统过滤每个用户可以打开票据的项目,但是现在我不能将输入新票据的当前用户设置为默认值。在

这是我的表格。在

4d38b9a9d56134ddd9e29115a918204a.png

欢迎一切帮助!

谢谢你们!在

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐