Как получить имя переменной модели из другой модели в django
У меня есть две модели в django model
Model.py
class RequestTemplate(models.Model):
name = models.CharField(max_length=50)
Author=models.CharField(max_length=50)
defaultvalues=models.CharField(max_length=50)
class Request(models.Model):
name = ?? #
Author = ??
starttime = models.DateTimeField(default=timezone.now)
endtime = models.DateTimeField(default=None)
Итак, идея заключается в том, что я хочу создать Requesttemplate, который я смогу использовать в будущем для создания объекта Request, который будет принимать имя и переменные Author из шаблона.
Я пытался использовать Forgienkey для переменной name, но в случае, если я обновлю шаблон в будущем, я не хочу, чтобы мой запрос был обновлен.
Вывод: Я хочу соединить Запрос с шаблоном на один раз (чтобы получить имена переменных) и затем держать его независимым от шаблона.
Есть идеи?
Просто используйте два простых поля:
class Request(models.Model):
name = models.CharField(max_length=50)
author = models.CharField(max_length=50)
starttime = models.DateTimeField(auto_now_add=True)
endtime = models.DateTimeField(default=None)
Затем в представлении можно построить Request на основе RequestTemplate:
from django.shortcuts import get_object_or_404
def clone_to_request(request, pk):
request_template = get_object_or_404(RequestTemplate, pk=pk)
request = Request.objects.create(
name=request_template.name,
author=request_template.author
)
# …
Таким образом, мы создаем новый Request на основе первичного ключа RequestTemplate.