Hey Moritz,
Thanks for the response. I read through the source code for tgext.crud and
I believe you are correct in saying that the problem is not within crud but
within sprox as I could see no code that dealt directly with these sorts of
things within crud (I believe it is handled within sprox's AddRecordForm
class (or its super classes).
I however cannot do what you recommend and add another dummy key as this
project is for a database assignment.
I will mail the Sprox mailing list regarding this. If necessary I can
provide the sql + my code to recreate the issue to hopefully get the bug
fixed that is causing the problem.
Thanks,
Alan Jenkins
On Wednesday, 5 June 2013 13:41:02 UTC+1, Moritz Schlarb wrote:
>
> 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.