Wie kann ich Feld bezogen auf Feld des verwandten Modells machen. Ich habe zwei Modelle: Album und Foto, Album-Modell haben boolean Feld private
. Wie man Feld private
in Foto anlegt, das False
Wert haben wird, wenn Albumfeld gleich None und Wert des privaten Feldes des Albums ist, wenn es nicht ist.Feld bezogen auf Feld des verwandten Objekts Django
models.py:
from django.db import models
from django.contrib.auth.models import User
import os
import uuid
def get_image_path(instance, filename):
return '{}.{}'.format(uuid.uuid4(), filename.split('.')[-1])
class Album(models.Model):
user = models.ForeignKey(User, related_name='albums', on_delete=models.CASCADE)
title = models.CharField(max_length=80, default='New album')
creation_date = models.DateField(auto_now_add=True)
private = models.BooleanField(default=False)
def __str__(self):
return self.title
class Meta:
ordering = ['-creation_date', ]
class Photo(models.Model):
user = models.ForeignKey(User, related_name='photos', on_delete=models.CASCADE)
album = models.ForeignKey(Album, related_name='photos', on_delete=models.CASCADE, null=True, blank=True)
title = models.CharField(max_length=80, default='New photo')
image = models.ImageField(title, upload_to=get_image_path)
creation_date = models.DateField(auto_now_add=True)
# ???
private = models.BooleanField()
# ???
def __str__(self):
return self.title
class Meta:
ordering = ['-creation_date', ]
Sie können nicht nur eine Eigenschaft hinzufügen, die auf Album privaten Bereich hängt? –