This might be due to buggy support for multiple primary keys in sprox (just 
a guess, I never used nor tested that feature) - you could try simply 
adding a separate dummy primary key id field on the model and using another 
constraint to ensure uniqueness of the student_id, course_id tuple. 
Although that would be a workaround and the issue should maybe checked with 
sprox...

Am Mittwoch, 5. Juni 2013 13:18:32 UTC+2 schrieb Alan Jenkins:
>
> Hey guys,
>
> I am currently working on a project for college and am trying to use 
> tgext.crud to create the admin interface. However I have a Enrolment model 
> that tgext.crud seems to be bugging out on.
>
> class Enrolment(DeclarativeBase):
>     __tablename__ = 'enrolment'
>    student_id = Column('student_id', Integer, 
> ForeignKey('student.student_id'), primary_key=True)
>    course_id = Column('course_id', Integer, 
> ForeignKey('course.course_id'), primary_key=True)
>
> The /enrolment/ view table I have shows both columns as expected.
>
> If I choose to edit one of the records it shows the student_id field as 
> disabled but allows editing of the course_id, this is fine by me.
>
> However if I attempt to create a new record it shows *only* the course id. 
> This means that you are unable to enroll a student on a course as you 
> cannot enter a student id. If you create a record by just specifying a 
> course_id it will just set the student_id to 0 which you would be unable to 
> edit.
>
> Here is my CrudRestController for this model:
>
> class EnrolmentController(CrudRestController):
>     model = model.Enrolment
>
>     class new_form_type(AddRecordForm):
>         __model__ = model.Enrolment
>         __require_fields__ = ['student_id', 'course_id']
>         __omit_fields__ = None
>
>     class edit_form_type(EditableForm):
>         __model__ = model.Enrolment
>
>     class edit_filler_type(EditFormFiller):
>         __model__ = model.Enrolment
>
>     class table_type(TableBase):
>         __model__ = model.Enrolment
>
>     class table_filler_type(TableFiller):
>         __model__ = model.Enrolment
>
> Thanks for any help in advance,
>
> Alan Jenkins
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" 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 http://groups.google.com/group/turbogears?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to