django python3会员中心_获取当前登录用户并将其设置为模型| Django+Python3上的默认用户...

在Django项目中创建小票系统时,遇到问题:如何在保存Ticket时,自动将当前登录用户设为Ticket模型的默认用户。已实现根据用户过滤可创建Ticket的项目,但无法在保存时自动设置用户。
摘要由CSDN通过智能技术生成

我正在学习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

欢迎一切帮助!

谢谢你们!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值