Переопределение профиля profile_detail профилей Django
Я установил django профили / регистрацию и все вроде бы нормально. Когда пользователь регистрируется, его профиль также создается. Теперь, что я хочу сделать, это запросить другую модель, которая является компанией на основе идентификатора пользователя пользователя. Я не хочу менять вид django-профилей, но добавляю дополнительное поле в URL для соответствия и запроса модели компании. Когда я жестко закодирую URL (например: введите id-номер userprofile, например, userprofile=1, он работает.). Поэтому, когда пользователь входит в систему и переходит на страницу сведений о профиле, назначенная ему компания запрашивается на основе его user.id.
class UserProfile(models.Model):
user = models.OneToOneField(User)
#email = models.CharField(max_length=200, blank=True, null=True)
# Other fields here
#company = models.ForeignKey(Company,blank=True,null=True)
#office = models.CharField(max_length=200, blank=True, null=True)
def __unicode__(self):
return self.user.username
class Company(models.Model):
userprofile = models.ForeignKey(UserProfile, null=True, blank=True)
comp_name = models.CharField(max_length=200,blank=True,null=True)
comp_address = models.CharField(max_length=200,blank=True, null=True)
comp_email = models.CharField(max_length=200,blank=True, null=True)
comp_zip = models.IntegerField(blank=True, null=True)
comp_phone = models.IntegerField(blank=True, null=True)
comp_city = models.CharField(max_length=200,blank=True, null=True)
#comp_state = models.USStateField(blank=True, null=True
comp_state = models.CharField(blank=True, max_length=2)
compwebsite = models.URLField(max_length=200, blank=True, null=True)
twitterurl = models.URLField(max_length=200, blank=True, null=True)
facebookurl = models.URLField(max_length=200, blank=True, null=True)
def __unicode__(self):
return self.comp_name
url(r'^profiles/(?P<username>\w+)/$', 'profiles.views.profile_detail', {'extra_context':{'queryset':Company.objects.filter(userprofile=request.user.id)}},),
1 ответ
Вы могли бы хотеть вызвать это изнутри представления
from *** import profile_detail
def my_view(request, username):
extra_context = {}
return profile_detail(request, queryset=Company.objects.filter(userprofile=request.user.id),
template_name="my_template.html",
paginate_by=20,
extra_context=extra_context)