class SupplyAdmin(admin.ModelAdmin):
available_fields = ('name', 'field1', 'field2')
hidden_fields = ('field3',)
def get_form(self, request, obj, **kwargs):
if request.user.username == 'example@example.com':
self.fields = self.available_fields + self.hidden_fields
else:
self.fields = self.available_fields
return super(SupplyAdmin, self).get_form(request, obj, **kwargs)
{% load static %}
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>{{ page_title }}</title>
<link rel="stylesheet" href="{% static "css/main.css" %}">
<link rel="shortcut icon" type="image/png" href="{% static "favicon.ico" %}">
....
PUT /компании/компания/{_id}
{
"навание": "SpaceX",
"работники": ...,
}
PUT /компании/компания/{hash}
{
...
}
"mappings": {
"компания": {
// в текущей версии: 2.3 depricated - сказывалось на производительности
"_id": {"path": "hash"},
"properties": {
"навание": {
"type": "string"
},
...
}
}
}
"mappings": {
"компания": {
"properties": {
"работники": {
"type": "nested",
"properties": {
"должность": {
"type": "string"
},
"имя": {
"type": "string"
}
}
}
}
}
}
// создание/обновление
PUT /компании/компания/{_id}
{
"название": "...",
"hash": "...",
"работники": [
{
"должность": "манагер",
"имя": ["Анатолий", "Андрей"]
},
{
"должность": ["управляющий", "заместитель"]
"имя": "Дмитрий"
},
{
"должность": "кассир",
"имя": ["Татьяна", "Анастасия"]
},
]
}
// примерный поиск
GET /компании/компания/_search
{
"query": {
"nested": {
"path": "работники",
"query": {
"bool": {
"must": [
{ "match": { "работники.должность": "управляющий" }},
{ "match": { "работники.должность": "кассир" }}
]
}
}
}
}
}
class LocalizedTopicAdmin(admin.StackedInline):
model = LocalizedTopic
max_num = len(settings.TARGET_LANGUAGES)
class TopicAdmin(admin.ModelAdmin):
inlines = [LocalizedTopicAdmin]
class MyModelAdmin(admin.ModelAdmin):
my_filter = {1: ('field1', 'field2'), 2: ('field3', 'field4')}
def get_fields(self, request, obj=None):
fields = super().get_fields(request, obj)
if obj is None:
return fields
return [f for f in fields if f not in self.my_filter[obj.my_type]]
class MyModelAdmin(admin.ModelAdmin):
class Media:
js = (
'js/my_fields_filter.js',
)
url(r'^category/(?P<pk1>\d+)/(?P<pk2>\d+)/(?P<pk3>\d+)/$', views.index, name='category'),
class Index(generic.ListView):
model = Category
paginate_by = 3
ordering = '-id'
template_name = 'articles/index.html'
def get_queryset(self):
return Category.objects.filter(id__in=(self.kwargs('pk1'), self.kwargs('pk2'), self.kwargs('pk3')))
index = Index.as_view()