Django

Code

Changeset 59

Show
Ignore:
Timestamp:
07/15/05 13:40:21 (3 years ago)
Author:
adrian
Message:

Fixed #3 -- Made OneToOneField? act like ForeignKey? and ManyToManyField?. This is the last big API change before the official launch.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/meta.py

    r9 r59  
    20772077        return [curry(formfields.SelectMultipleField, size=min(max(len(choices), 5), 15), choices=choices)] 
    20782078 
     2079class OneToOneField(IntegerField): 
     2080    def __init__(self, to, to_field=None, rel_name=None, **kwargs): 
     2081        kwargs['name'] = kwargs.get('name', 'id') 
     2082        kwargs['verbose_name'] = kwargs.get('verbose_name', 'ID') 
     2083        to_field = to_field or to._meta.pk.name 
     2084        rel_name = rel_name or to._meta.object_name.lower() 
     2085        kwargs['rel'] = OneToOne(to, rel_name, to_field, 
     2086            num_in_admin=kwargs.pop('num_in_admin', 0), 
     2087            edit_inline=kwargs.pop('edit_inline', False), 
     2088            edit_inline_type=kwargs.pop('edit_inline_type', STACKED), 
     2089            related_name=kwargs.pop('related_name', None), 
     2090            limit_choices_to=kwargs.pop('limit_choices_to', None), 
     2091            lookup_overrides=kwargs.pop('lookup_overrides', None), 
     2092            raw_id_admin=kwargs.pop('raw_id_admin', False)) 
     2093        kwargs['primary_key'] = True 
     2094        IntegerField.__init__(self, **kwargs) 
     2095 
    20792096#################### 
    20802097# RELATIONSHIPS    # 
  • django/trunk/docs/db-api.txt

    r41 r59  
    142142        ... 
    143143        fields = ( 
    144             meta.IntegerField('id', 'ID', primary_key=True, 
    145                 rel=meta.OneToOne(places.Place, 'place', 'id')), 
     144            meta.OneToOneField(places.Place), 
    146145            ... 
    147146        ) 
     
    295294================ 
    296295 
    297 Once you've retrieved an object from the database using any of the above  
     296Once you've retrieved an object from the database using any of the above 
    298297options, changing it is extremely easy.  Make changes directly to the 
    299298objects fields, then call the object's ``save()`` method::