У меня есть следующая аннотация:
class A:
clientname ...
logs = models.ManyToManyField(B, blank=True, null=True)
class B.
message ...
timestamp = models.DateTimeField()
def save(self, *args, **kwargs):
self.timestamp = datetime.now()
super(B, self).save(*args, **kwargs)
Теперь, если сообщение сохранено, я хочу, чтобы оно всегда имело отметку времени. И я не хочу менять отношения многих людей. Это возможно? И если это так, как бы мне написать?
UPDATE:
мой взгляд
def log(request):
if request.method == 'POST':
log, created = B.objects.get_or_create(message=request.POST['message'])
client = \
A.objects.get(clientname=request.POST['clientname'])
client.logs.add(log)
return HttpResponse(content="OK", mimetype="text/plain", status=200)
else:
return HttpResponse(content="Failed", mimetype="text/plain", status=400)
RESOLUTON:
Я сделал это, это своего рода обходной путь:
def log(request):
if request.method == 'POST':
time = datetime.now()
log, created = \
Log.objects.get_or_create(message=request.POST['message'], \
timestamp=time)
client = \
Thinclient.objects.get(hostname=request.POST['clientname'])
client.logs.add(log)
return HttpResponse(content="OK", mimetype="text/plain", status=200)
else:
return HttpResponse(content="Failed", mimetype="text/plain", status=400)
ОБНОВЛЕНИЕ:
Нет, на самом деле это не то, что я хотел, потому что это создаст новые экземпляры сообщения, даже если сообщение будет таким же