human
Complete this python program:
def create_model(name, fields=None, app_label=u'', module=u'', options=None, admin_opts=None, with_admin=False):
assistant
#Here is the Python program you requested.

    """Create specified model
    """
    class Meta:
        pass
    if app_label:
        setattr(Meta, u'app_label', app_label)
    if (options is not None):
        for (key, value) in options.iteritems():
            setattr(Meta, key, value)
    setattr(Meta, u'verbose_name_plural', name)
    geomanager = models.GeoManager()
    geomanager._db = DYNAMIC_DATASTORE
    attrs = {u'__module__': module, u'Meta': Meta, u'objects': geomanager}
    if fields:
        attrs.update(fields)
    model = type(str(name), (models.Model,), attrs)
    class Admin(admin.OSMGeoAdmin, ):
        u'Takes    into    account    multi-db    queries.\n                                '
        using = DYNAMIC_DATASTORE
        def save_model(self, request, obj, form, change):
            obj.save(using=self.using)
        def delete_model(self, request, obj):
            obj.delete(using=self.using)
        def get_queryset(self, request):
            return super(Admin, self).get_queryset(request).using(self.using)
        def queryset(self, request):
            return super(Admin, self).queryset(request).using(self.using)
        def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
            return super(Admin, self).formfield_for_foreignkey(db_field, request=request, using=self.using, **kwargs)
        def formfield_for_manytomany(self, db_field, request=None, **kwargs):
            return super(Admin, self).formfield_for_manytomany(db_field, request=request, using=self.using, **kwargs)
    if (admin_opts is not None):
        for (key, value) in admin_opts:
            setattr(Admin, key, value)
    if (not with_admin):
        return model
    else:
        return (model, Admin)