Всем привет!
Имеется два уточняющих вопроса по нижеследующему коду (
источник):
from django.conf import settings
from django.db import models
def upload_update_image(instance, filename):
return "updates/{user}/{filename}".format(user=instance.user, filename=filename)
class Update(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
content = models.TextField(blank=True, null=True)
image = models.ImageField(upload_to=upload_update_image, blank=True, null=True)
updated = models.DateTimeField(auto_now=True)
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.content or ""
1. Почему используется конструкция
user = models.ForeignKey(settings.AUTH_USER_MODEL)
, а не, к примеру,
user = models.ForeignKey(USER)
?
2. Если мы прописываем в
upload_to=
нечто, что не равно строке или переменной, хранящей строку, то это автоматически воспринимается django как функция с заданными по умолчанию переменными?