5
5
from django.db import models
6
from django.contrib import admin
7
6
from django.contrib.contenttypes.models import ContentType
8
7
from django.contrib.contenttypes import generic
9
from django import forms
11
10
class Parent(models.Model):
12
11
name = models.CharField(max_length=50)
14
13
def __unicode__(self):
17
17
class Teacher(models.Model):
18
18
name = models.CharField(max_length=50)
20
20
def __unicode__(self):
23
24
class Child(models.Model):
24
25
name = models.CharField(max_length=50)
25
26
teacher = models.ForeignKey(Teacher)
31
32
def __unicode__(self):
32
33
return u'I am %s, a child of %s' % (self.name, self.parent)
34
36
class Book(models.Model):
35
37
name = models.CharField(max_length=50)
37
40
class Author(models.Model):
38
41
name = models.CharField(max_length=50)
39
42
books = models.ManyToManyField(Book)
41
class BookInline(admin.TabularInline):
42
model = Author.books.through
44
class AuthorAdmin(admin.ModelAdmin):
45
inlines = [BookInline]
47
admin.site.register(Author, AuthorAdmin)
49
45
class Holder(models.Model):
50
46
dummy = models.IntegerField()
56
52
readonly = models.CharField("Inner readonly label", max_length=1)
59
class InnerInline(admin.StackedInline):
62
readonly_fields = ('readonly',) # For bug #13174 tests.
65
55
class Holder2(models.Model):
66
56
dummy = models.IntegerField()
70
60
dummy = models.IntegerField()
71
61
holder = models.ForeignKey(Holder2)
73
class HolderAdmin(admin.ModelAdmin):
76
js = ('my_awesome_admin_scripts.js',)
78
class InnerInline2(admin.StackedInline):
82
js = ('my_awesome_inline_scripts.js',)
84
63
class Holder3(models.Model):
85
64
dummy = models.IntegerField()
89
68
dummy = models.IntegerField()
90
69
holder = models.ForeignKey(Holder3)
92
class InnerInline3(admin.StackedInline):
96
js = ('my_awesome_inline_scripts.js',)
98
# Test bug #12561 and #12778
99
# only ModelAdmin media
100
admin.site.register(Holder, HolderAdmin, inlines=[InnerInline])
101
# ModelAdmin and Inline media
102
admin.site.register(Holder2, HolderAdmin, inlines=[InnerInline2])
104
admin.site.register(Holder3, inlines=[InnerInline3])
71
# Models for ticket #8190
73
class Holder4(models.Model):
74
dummy = models.IntegerField()
76
class Inner4Stacked(models.Model):
77
dummy = models.IntegerField(help_text="Awesome stacked help text is awesome.")
78
holder = models.ForeignKey(Holder4)
80
class Inner4Tabular(models.Model):
81
dummy = models.IntegerField(help_text="Awesome tabular help text is awesome.")
82
holder = models.ForeignKey(Holder4)
106
85
# Models for #12749
119
98
fashionista = models.ForeignKey(Fashionista)
120
99
item = models.ForeignKey(OutfitItem)
122
class InlineWeakness(admin.TabularInline):
123
model = ShoppingWeakness
126
admin.site.register(Fashionista, inlines=[InlineWeakness])
128
101
# Models for #13510
130
103
class TitleCollection(models.Model):
135
108
title1 = models.CharField(max_length=100)
136
109
title2 = models.CharField(max_length=100)
138
class TitleForm(forms.ModelForm):
141
cleaned_data = self.cleaned_data
142
title1 = cleaned_data.get("title1")
143
title2 = cleaned_data.get("title2")
145
raise forms.ValidationError("The two titles must be the same")
148
class TitleInline(admin.TabularInline):
153
admin.site.register(TitleCollection, inlines=[TitleInline])
155
111
# Models for #15424
157
113
class Poll(models.Model):
160
116
class Question(models.Model):
161
117
poll = models.ForeignKey(Poll)
163
class QuestionInline(admin.TabularInline):
165
readonly_fields=['call_me']
167
def call_me(self, obj):
168
return 'Callable in QuestionInline'
170
class PollAdmin(admin.ModelAdmin):
171
inlines = [QuestionInline]
173
def call_me(self, obj):
174
return 'Callable in PollAdmin'
176
119
class Novel(models.Model):
177
120
name = models.CharField(max_length=40)
179
122
class Chapter(models.Model):
180
123
novel = models.ForeignKey(Novel)
182
class ChapterInline(admin.TabularInline):
184
readonly_fields=['call_me']
186
def call_me(self, obj):
187
return 'Callable in ChapterInline'
189
class NovelAdmin(admin.ModelAdmin):
190
inlines = [ChapterInline]
192
admin.site.register(Poll, PollAdmin)
193
admin.site.register(Novel, NovelAdmin)
127
class CapoFamiglia(models.Model):
128
name = models.CharField(max_length=100)
131
class Consigliere(models.Model):
132
name = models.CharField(max_length=100)
133
capo_famiglia = models.ForeignKey(CapoFamiglia, related_name='+')
136
class SottoCapo(models.Model):
137
name = models.CharField(max_length=100)
138
capo_famiglia = models.ForeignKey(CapoFamiglia, related_name='+')
142
class ProfileCollection(models.Model):
145
class Profile(models.Model):
146
collection = models.ForeignKey(ProfileCollection, blank=True, null=True)
147
first_name = models.CharField(max_length=100)
148
last_name = models.CharField(max_length=100)
b'\\ No newline at end of file'