Используя простой объект, можно разделить на пары строки, которые представляют имена свойства с их соответствующими значениями. Изменение цвета фона и создание более смелого текста, например, были бы похожи на это:
$("#message").css({
"background-color": "#0F0",
"font-weight" : "bolder"
});
, С другой стороны, можно использовать имена свойства JavaScript также:
$("#message").css({
backgroundColor: "rgb(128, 115, 94)",
fontWeight : "700"
});
[еще 115] информация может быть найдена в документация jQuery .
В дополнение к ответу С.Лотта и, как указано в комментариях, можно добавить фильтры набора запросов, переопределив функцию ModelForm .__ init __
. (Это можно легко применить к обычным формам), это может помочь при повторном использовании и сохранить аккуратность функции просмотра.
class ClientForm(forms.ModelForm):
def __init__(self,company,*args,**kwargs):
super (ClientForm,self ).__init__(*args,**kwargs) # populates the post
self.fields['rate'].queryset = Rate.objects.filter(company=company)
self.fields['client'].queryset = Client.objects.filter(company=company)
class Meta:
model = Client
def addclient(request, company_id):
the_company = get_object_or_404(Company, id=company_id)
if request.POST:
form = ClientForm(the_company,request.POST) #<-- Note the extra arg
if form.is_valid():
form.save()
return HttpResponseRedirect(the_company.get_clients_url())
else:
form = ClientForm(the_company)
return render_to_response('addclient.html',
{'form': form, 'the_company':the_company})
Это может быть полезно для повторного использования, например, если у вас есть общие фильтры, необходимые для многих моделей (обычно я объявляю абстрактный класс формы). Например,
class UberClientForm(ClientForm):
class Meta:
model = UberClient
def view(request):
...
form = UberClientForm(company)
...
#or even extend the existing custom init
class PITAClient(ClientForm):
def __init__(company, *args, **args):
super (PITAClient,self ).__init__(company,*args,**kwargs)
self.fields['support_staff'].queryset = User.objects.exclude(user='michael')
В остальном я просто пересказываю материалы блога Django, из которых есть много хороших.
Итак, я действительно пытался понять это, но похоже, что Django все еще не делает это очень простым. Я не такой тупой, но я просто не вижу никакого (несколько) простого решения.
Я считаю, что в целом довольно уродливо переопределять представления администратора для такого рода вещей, и каждый пример, который я нахожу, никогда не полностью применимо к представлениям администратора.
Это настолько обычное явление в моделях, которые я делаю, что я считаю ужасным отсутствие очевидного решения для этого ...
У меня есть следующие классы:
# models.py
class Company(models.Model):
# ...
class Contract(models.Model):
company = models.ForeignKey(Company)
locations = models.ManyToManyField('Location')
class Location(models.Model):
company = models.ForeignKey(Company)
Это создает проблему при настройке администратора для компании, потому что у него есть встроенные строки для контракта и местоположения, а параметры m2m контракта для местоположения не фильтруются должным образом в соответствии с компанией, которую вы в настоящее время редактируете.
Короче говоря, Мне бы потребовались некоторые параметры администратора, чтобы сделать что-то вроде этого:
# admin.py
class LocationInline(admin.TabularInline):
model = Location
class ContractInline(admin.TabularInline):
model = Contract
class CompanyAdmin(admin.ModelAdmin):
inlines = (ContractInline, LocationInline)
inline_filter = dict(Location__company='self')
В конечном счете, мне было бы все равно, был ли процесс фильтрации помещен в базовый CompanyAdmin или в ContractInline. (Размещение его во встроенном элементе имеет больше смысла, но из-за этого сложно ссылаться на базовый контракт как на «себя».)
Есть ли кто-нибудь, кто знает что-то настолько простое, как этот крайне необходимый ярлык? Когда я делал PHP-администраторов для такого рода вещей, это считалось базовой функциональностью! Фактически, он всегда был автоматическим, и его приходилось отключать, если вы действительно этого не хотели!
но из-за этого трудно ссылаться на базовый Контракт как на «себя».)Есть ли кто-нибудь, кто знает что-нибудь столь же простое, как этот столь необходимый ярлык? Когда я делал PHP-администраторов для такого рода вещей, это считалось базовой функциональностью! Фактически, это всегда было автоматическим, и его приходилось отключать, если вы действительно этого не хотели!
но из-за этого трудно ссылаться на базовый Контракт как на «себя».)Есть ли кто-нибудь, кто знает что-нибудь столь же простое, как этот столь необходимый ярлык? Когда я делал PHP-администраторов для такого рода вещей, это считалось базовой функциональностью! Фактически, это всегда было автоматическим, и его приходилось отключать, если вы действительно этого не хотели!