¡Esta es una revisión vieja del documento!
class Award(models.Model): name = models.CharField(max_length=200, help_text="Enter a video title", unique=True) ... @classmethod def pre_save(cls, sender, instance, **kwargs): ... pre_save.connect(Award.pre_save, sender=Award)
from django.contrib.auth.models import User from django.db.models.signals import post_save from django.dispatch import receiver
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE) bio = models.TextField(max_length=500, blank=True) location = models.CharField(max_length=30, blank=True) birth_date = models.DateField(null=True, blank=True)
@receiver(post_save, sender=User) def create_user_profile(sender, instance, created, kwargs): if created: Profile.objects.create(user=instance) @receiver(post_save, sender=User) def save_user_profile(sender, instance, kwargs):
instance.profile.save()
</code>
Proxy models are used to modify Python behaviour of a model by extending a model class. Database tables aren't generated for proxy models. So you can't use a proxy model for AUTH_USER_MODEL.
class Badge(models.Model):
name = ...
color = ... # gold/silver
class GoldBadge(Badge)
class Meta:
proxy = True
def award(self, user):
# award a gold badge to user
class SilverBadge(Badge):
class Meta:
proxy = True
def award(self, user):
# award a silver badge to user
Model:
cover = models.ImageField(null=True)
Template:
{% if object.cover %}
<img src="{{ object.cover.url }}"></img>
{% endif %}
Config:
MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, '../media')
Urls:
from django.contrib.staticfiles.urls import static from django.conf import settings urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
id = models.UUIDField(primary_key=True, default=uuid4, help_text="Unique ID for this particular video")
import calendar ... class MyModel(models.Model): ... MONTH_CHOICES = [(str(i), calendar.month_name[i]) for i in range(1,13)] month = CharField(max_length=9, choices=MONTHS_CHOICES, default='1')
from django.apps import apps
apps.get_model('users', 'BaseUser')