class Course(models.Model):
name = models.CharField(max_length=100)
instructor = models.CharField(max_length=100)
student = models.ForeignKey('Student', null=True, blank=True)
def __str__(self):
return (self.name)
class Student(models.Model):
name = models.CharField(max_length=100)
courses = RelatedObjectsDescriptor()
def __str__(self):
return (self.name)
forms.py
class StudentForm(autocomplete_light.ModelForm):
class Meta:
model = Student
exclude = ()
class CourseForm(autocomplete_light.ModelForm):
class Meta:
model = Course
exclude = ()
admin.py
class CourseInline(admin.TabularInline):
model = Course
form = CourseForm
extra = 3
class StudentAdmin(admin.ModelAdmin):
form = StudentForm
search_fields = ('name', )
fields = ('name', )
ordering = ('name',)
inlines = [CourseInline]
admin.site.register(Student, StudentAdmin)
autocomplete_light_registry.py
class StudentAutocomplete(autocomplete_light.AutocompleteGenericBase):
choices = Student.objects.all()
search_fields = ('name',)
autocomplete_js_attributes = {'placeholder': 'suggestions...', 'minimum_characters': 0}
autocomplete_light.register(StudentAutocomplete)
class CourseAutocomplete(autocomplete_light.AutocompleteGenericBase):
choices = Course.objects.all()
search_fields = ('name', 'instructor')
autocomplete_js_attributes = {'placeholder': 'suggestions...', 'minimum_characters': 0}
autocomplete_light.register(CourseAutocomplete)