In this section, we are going to discuss about Django admin validation.
Lets assume, we have a project & app in place,
Just for sake, assume we have Post model in our app with below stuff,
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
def __str__(self):
return self.content
Now, we can create the form with the below content,
from django import forms
from .models import Post
class PostForm(forms.ModelForm):
class Meta:
model = Status
fields = [
'title',
'content'
]
def clean(self, *args, **kwargs):
data = self.cleaned_data
content = data.get('content', None)
title= data.get('title', None)
if content == "":
content = None
if title== "":
title= None
if content is None and titleis None:
raise forms.ValidationError('Content or title is required.')
return super().clean(*args, **kwargs)
Now, its time to register our model into admin.py file,
from django.contrib import admin
from .forms import PostForm
from .models import Post
class PostAdmin(admin.ModelAdmin):
form = PostForm
admin.site.register(Post, PostAdmin)
As you noticed, we have used our form object in to our admin file.
Thats it !!!. Now, if we visit the admin page & validate this. It should work as expected. Here I am not posting any screenshot of the output. If you would like to know that, let me know in comment section, I will update it accordingly.
Happy Coding !!!
Hello
I am new here