【发布时间】:2020-07-14 12:59:19
【问题描述】:
我正在构建一个 Angular + Django 项目,我需要向它添加一些文件,这个想法是这个模型 Ticket 应该接收一些文件,如 imgs 或 pdf... 我应该在模型中使用哪个字段?文件字段?
class Ticket (models.Model):
titulo = models.CharField(max_length=100, blank=True)
estagio = models.ForeignKey(
Estagio, related_name='tickets', on_delete=models.CASCADE, null=True)
cliente = models.ForeignKey(Cliente, on_delete=models.CASCADE, null=True)
org = models.ForeignKey(Organizacao, on_delete=models.CASCADE, null=True)
produto = models.ManyToManyField(Produto)
valorestimado = models.IntegerField(null=True)
termometro = models.CharField(max_length=100, null=True, blank=True)
vendedor = models.ForeignKey(
Vendedor, on_delete=models.CASCADE, null=True)
vendedorext = models.ManyToManyField(
VendedorExt, related_name='leads', blank=True)
obs = models.ManyToManyField(Obs, related_name='tickets')
status = models.CharField(max_length=155, blank=True, default='Aberto')
mtvperd = models.CharField(max_length=155, null=True, blank=True)
cmtperd = models.CharField(max_length=155, null=True, blank=True)
created = models.ForeignKey(Created, on_delete=models.CASCADE, null=True)
updated = models.ManyToManyField(Updated)
def __str__(self):
return str(self.titulo)
我怎样才能在视图中处理这个img? :
class TicketViewSet(viewsets.ModelViewSet):
queryset = Ticket.objects.all().order_by('-id')
serializer_class = TicketSerializer
authentication_classes = [TokenAuthentication]
permission_classes = [IsAuthenticated]
def create(self, request):
data = request.data
print(data['titulo'])
print(request.user)
print(request.headers)
c = Created()
c.user = request.user
c.save()
V = Vendedor.objects.get(id=int(data['vendedor']))
print(V)
T = Ticket()
T.titulo = data['titulo']
T.estagio = Estagio.objects.get(id=int(data['estagio']))
T.cliente = Cliente.objects.get(id=int(data['cliente']))
T.org = Organizacao.objects.get(id=int(data['org']))
T.valorestimado = int(data['valorestimado'])
T.termometro = data['termometro']
T.vendedor = V
T.status = 'Aberto'
T.created = c
T.save()
try:
if data['obs'].length >= 1:
for i in data['obs']:
k = Obs()
k.texto = i
k.save()
T.obs.add(k)
T.save()
except:
k = Obs()
k.texto = data['obs']
k.save()
T.obs.add(k)
T.save()
produtos = data['produto']
for prod in produtos:
T.produto.add(Produto.objects.get(id=prod))
T.save()
print(data)
return JsonResponse({'message': 'Saved'})
另外,这是将文件发送到 API 的正确方法吗?
<form>
<label id="thumbnail">
<input type="file" name="attachments[dummy][file]" class="file_selector" multiple="multiple"/>
</label>
<button class="btn btn-success" (click)="formAnexo()" style="float: right;">Salvar Anexo</button>
</form>
对不起,如果我错过了一些明显的东西,那是第一次使用 Django 处理文件
【问题讨论】:
标签: django angular django-models django-rest-framework django-views