2017-09-13 1 views
1

Quelque chose avec cette instruction if? Cela fonctionne, mais pas correctement. Aucune erreur ne survient et il affiche le nombre associé à chaque valeur de mot, mais il n'affiche pas le mot correct et l'extrémité avant.Quelque chose ne va pas avec mes balises de gabarit

<p class="accent list-text">I'm a:</p> 
{% if request.user.userprofile.user_type == 1 %} 
    <p class="profile-info list-text">Designer</p> 
{% elif request.user.userprofile.user_type == 2 %} 
    <p class="profile-info list-text">Designer</p> 
{% else %} 
    <p class="profile-info list-text">Both</p> 
{% endif %} 

Models.py:

from django.db import models 
from django.utils import timezone 
from django.contrib.auth.models import User 
from users.choices import * 
from django.db.models.signals import post_save 
from django.dispatch import receiver 

# Create your models here. 
class UserProfile(models.Model): 
    user = models.OneToOneField(User, on_delete=models.CASCADE) 

    first_name = models.CharField(max_length=50,default='User') 
    join_date = models.DateTimeField(default=timezone.now) 
    profile_pic = models.ImageField(upload_to='profile_pics',null=True,blank=True) 
    location = models.CharField(max_length=150) 
    title = models.CharField(max_length=250) 
    user_type = models.IntegerField(choices=USER_TYPE_CHOICES,default=1) 
    website = models.URLField(max_length=100,blank=True) 
    about = models.TextField(max_length=500,default='about') 
    twitter = models.CharField(max_length=50,blank=True) 
    dribbble = models.CharField(max_length=50,blank=True) 
    github = models.CharField(max_length=50,blank=True) 

    @receiver(post_save, sender=User) 
    def create_user_profile(sender, instance, created, **kwargs): 
     if created: 
      UserProfile.objects.create(user=instance) 

    @receiver(post_save, sender=User) 
    def save_user_profile(sender, instance, **kwargs): 
     instance.userprofile.save() 

    def __str__(self): 
     return self.user.username 

choices.py:

USER_TYPE_CHOICES = (
    (1, ("Designer")), 
    (2, ("Developer")), 
    (3, ("Both")), 
) 
+0

Ajoutez votre models.py –

+0

@AstikAnand venons d'ajouter les modèles – Garrett

+0

-t-il rien afficher dans le modèle qui est dans la condition if? –

Répondre

1

Dans modèle UserProfile

Il suffit d'utiliser CharField des choix comme celui-ci et cela fonctionnera très bien .

USER_TYPE_CHOICES = (
    ('1', 'Designer'), 
    ('2', 'Developer'), 
    ('3', 'Both'), 
) 

user_type = models.CharField(max_length=1,choices=USER_TYPE_CHOICES,default='1') 
+0

Ne change rien, j'ai ajouté mes modèles et choices.py. 'else' fonctionne et il affiche" les deux "mais les deux autres choix semblent être confus – Garrett

+0

@ Garrett, cela a-t-il fonctionné pour vous ?? –

+0

Hey je voulais savoir si cela a fonctionné pour vous ou pas? –