Ok that makes sense.

Now I have something like this

class modelStudentAdmin(admin.ModelAdmin):
    form = modelStudentAdminForm

    #Only display students that belong to this user
    def get_queryset(self, request):
        qs = super(modelStudentAdmin, self).get_queryset(request)

        if request.user.is_superuser:
            return qs
        else:
            # Get the school instance
            schoolInstance = modelSchool.objects.get(user=request.user)
            qs = modelStudent.objects.filter(school=schoolInstance)
            return qs

    def get_form(self, request, obj=None, **kwargs):
        self.fields["first_name"] = "asasa"
        #modelStudentAdmin.form['first_name']="FooUSerFs"
        #modelStudentAdmin.form.cleaned_data.setdefault("first_name","dsdsds")

        #modelStudentAdmin.form.initial={"first_name":"JoeJoe"}
        #form.cleaned_data.get('player')
        return modelStudentAdmin.form




Now I am not sure how to assign values to fields in the form. Normally when 
assigning a value to a field in the form I would pass initial a dictionary 
in the constructor.
In this case it says

 'NoneType' object does not support item assignment

So my question is how can i mark a field as readonly in the form and assign 
an initial value ?

  

On Saturday, January 28, 2017 at 6:21:34 PM UTC-8, Mike08 wrote:
>
> I currently have a model that looks like this
>
> class modelStudent(models.Model):
>     user = models.OneToOneField(User, on_delete=models.CASCADE,null=True, 
> blank=True)
>     school           = models.ForeignKey(modelSchool)
>
> Now I also have a modelStudentAdmin of the above model which basically 
> filters out the data seen by the user. The code looks like this
>
> class modelStudentAdmin(admin.ModelAdmin):
>     def get_queryset(self, request):
>         qs = super(modelStudentAdmin, self).get_queryset(request)
>
>         if request.user.is_superuser:
>             return qs
>         else:
>             # Get the school instance
>             schoolInstance = modelSchool.objects.get(user=request.user)
>             qs = modelStudent.objects.filter(school=schoolInstance)
>             return qs
>
> admin.site.register(modelStudent,modelStudentAdmin)
>
> now my question is in the admin when the user attempts to create a new 
> modelStudent for the field "user" all available users are shown in the drop 
> down. My question is if there is a way for me to limit/restrict that drop 
> down to a certain value or (set that drop down value to something and then 
> have the drop down disabled) ? I only want people creating 
> modelStudentAdmin under their respective user field.
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/8dd86eb8-7670-4058-bc30-abdf6c81e97b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to