Форум сайта python.su
Возможно кто сталкивался с таким.
В шаблоне я примерно представляю как это написать {% if request.user == item.company.user %}
Но хотят в админке и не автозаполнение, а сделать поле необязательным для конктретного пользователя.
Сейчас гуглю на эту тему, но не очень успешно.
1. В создании “Вакансии” данные о компании для избранных пользователей не обязательны.
Первая идея соотвевенно сделать группу, по группе сделать проверку, но опыта ковыряния в админке у меня небыло доселе.
Отредактировано chaotism (Июнь 21, 2013 11:28:17)
Офлайн
http://getopts.blogspot.ru/2008/12/django.html Зацепку вроде нашел
http://www.askdev.ru/django/5204/%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81-%D0%BF%D0%BE-%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%BA%D0%B5/
сделать проверку по группе и переопределить метод create?
и сделать новый шаблон
http://brainsburn.blogspot.ru/2011/09/django.html ?
Отредактировано chaotism (Июнь 21, 2013 11:44:08)
Офлайн
или появилась мысль попробовать переопределить метод save в модели
Офлайн
при проверке в моделе.
class BaseRealty(models.Model):
user = models.ForeignKey(User, related_name="%(app_label)s_%(class)s")
locality = models.CharField(max_length=3, choices=LOCALITIES, verbose_name=u'Населенный пункт')
rating = models.IntegerField(default=0, blank=True)
address = models.CharField(max_length=150, verbose_name=u'Адрес (улица, дом, корпус)', blank=True)
def save(self, *args, **kwargs):
if self.user:
self.rating = 5
super(BaseRealty, self).save(*args, **kwargs) # Call the "real" save() method.
Офлайн
в итоге сделал так добавил два доп поля и сделал проверку по пользователю, если пользователь обычный то они автозаполняются(если есть имя и фамилия то ими, если нет то ник), а в админке не заполняются если избраный, то заполнять можешь сам, а админке они отображаются
class BaseRealtyAdmin(admin.ModelAdmin): inlines = [ RealtyImageInline, get_inline(MyMetadata)] def get_form(self,request,obj=None,**kwargs): """ Динамически создаем форму в зависимости от условий """ form = super(BaseRealtyAdmin,self).get_form(request,obj,**kwargs) user = request.user if not bool(user.groups.filter(pk=1)): del form.base_fields['user_name'] del form.base_fields['user_email'] return form def save_model(self, request, ad, form, change): user = request.user if not ad.user: ad.user=request.user if not bool(user.groups.filter(pk=1)) and user.is_superuser: if len(ad.user.first_name.strip()): ad.user_name=ad.user.first_name+' '+ad.user.last_name else: ad.user_name=ad.user.username ad.user_email=ad.user.email super(BaseRealtyAdmin, self).save_model(request, ad, form, change)
Отредактировано chaotism (Июль 2, 2013 13:54:45)
Офлайн