Как получить имя переменной модели из другой модели в 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.

Вернуться на верх