Django

Code

Changeset 1322

Show
Ignore:
Timestamp:
11/20/05 19:39:18 (3 years ago)
Author:
adrian
Message:

Fixed bug for OneToOneFields? in the admin -- the manipulator_validator_unique wasn't doing the correct lookup

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/admin/views/main.py

    r1275 r1322  
    7979 
    8080    lookup_mod, lookup_opts = mod, opts 
    81  
    82     if opts.one_to_one_field: 
    83         lookup_mod = opts.one_to_one_field.rel.to.get_model_module() 
    84         lookup_opts = lookup_mod.Klass._meta 
    85         # If lookup_opts doesn't have admin set, give it the default meta.Admin(). 
    86         if not lookup_opts.admin: 
    87             lookup_opts.admin = meta.Admin() 
    8881 
    8982    # Get search parameters from the query string. 
  • django/trunk/django/core/meta/fields.py

    r1316 r1322  
    4949    "Validates that the value is unique for this field." 
    5050    if f.rel and isinstance(f.rel, ManyToOne): 
    51         lookup_type = 'pk' 
     51        lookup_type = '%s__%s__exact' % (f.name, f.rel.get_related_field().name) 
    5252    else: 
    53         lookup_type = 'exact' 
     53        lookup_type = '%s__exact' % (f.name, lookup_type) 
    5454    try: 
    55         old_obj = opts.get_model_module().get_object(**{'%s__%s' % (f.name, lookup_type): field_data}) 
     55        old_obj = opts.get_model_module().get_object(**{lookup_type: field_data}) 
    5656    except ObjectDoesNotExist: 
    5757        return